/**
  * Update a list of Bistum entities
  */
 public function updateListAction()
 {
     if ($this->request->hasArgument('data')) {
         $bistumlist = $this->request->getArgument('data');
     }
     if (empty($bistumlist)) {
         $this->throwStatus(400, 'Required data arguemnts not provided', null);
     }
     foreach ($bistumlist as $uuid => $bistum) {
         if (isset($uuid) && !empty($uuid)) {
             $bistumObj = $this->bistumRepository->findByIdentifier($uuid);
             $bistumObj->setBistum($bistum['bistum']);
             $bistumObj->setKirchenprovinz($bistum['kirchenprovinz']);
             $bistumObj->setBemerkung($bistum['bemerkung']);
             if (isset($bistum['ist_erzbistum']) && !empty($bistum['ist_erzbistum'])) {
                 $ist_erzbistum = $bistum['ist_erzbistum'];
             } else {
                 $ist_erzbistum = 0;
             }
             $bistumObj->setIst_erzbistum($ist_erzbistum);
             $bistumObj->setShapefile($bistum['shapefile']);
             $ortUUID = $bistum['ort'];
             $ort = $this->ortRepository->findByIdentifier($ortUUID);
             $bistumObj->setOrt($ort);
             $this->bistumRepository->update($bistumObj);
         } else {
             $this->throwStatus(400, 'Required uUID not provided', null);
         }
     }
     $this->persistenceManager->persistAll();
     $this->throwStatus(200, null, null);
 }
 /**
  * Update a list of Ort entities
  */
 public function updateListAction()
 {
     if ($this->request->hasArgument('data')) {
         $ortlist = $this->request->getArgument('data');
     }
     if (empty($ortlist)) {
         $this->throwStatus(400, 'Required data arguemnts not provided', null);
     }
     foreach ($ortlist as $uuid => $ort) {
         if (isset($uuid) && !empty($uuid)) {
             $ortObj = $this->ortRepository->findByIdentifier($uuid);
             $ortObj->setOrt($ort['ort']);
             $ortObj->setGemeinde($ort['gemeinde']);
             $ortObj->setKreis($ort['kreis']);
             $ortObj->setBreite($ort['breite']);
             $ortObj->setLaenge($ort['laenge']);
             if (isset($ort['wuestung']) && !empty($ort['wuestung'])) {
                 $wuestung = $ort['wuestung'];
             } else {
                 $wuestung = 0;
             }
             $ortObj->setWuestung($wuestung);
             $bistumUUID = $ort['bistum'];
             $bistum = $this->bistumRepository->findByIdentifier($bistumUUID);
             $ortObj->setBistum($bistum);
             $this->ortRepository->update($ortObj);
         } else {
             $this->throwStatus(400, 'Required uUID not provided', null);
         }
     }
     $this->persistenceManager->persistAll();
     $this->throwStatus(200, null, null);
 }
 /**
  * Delete a Land entity
  */
 public function deleteAction()
 {
     if ($this->request->hasArgument('uUID')) {
         $uuid = $this->request->getArgument('uUID');
     }
     if (empty($uuid)) {
         $this->throwStatus(400, 'Required uUID not provided', null);
     }
     $lands = count($this->ortRepository->findByLand($uuid));
     if ($lands == 0) {
         $landObj = $this->landRepository->findByIdentifier($uuid);
         if (!is_object($landObj)) {
             $this->throwStatus(400, 'Entity Land not available', null);
         }
         $this->landRepository->remove($landObj);
         $this->throwStatus(200, null, null);
     } else {
         $this->throwStatus(400, 'Due to dependencies Land entity could not be deleted', null);
     }
 }
 public function searchBistumAction()
 {
     if ($this->request->hasArgument('uUID')) {
         $uuid = $this->request->getArgument('uUID');
         if (!empty($uuid)) {
             $ort = $this->ortRepository->findByIdentifier($uuid);
             if (is_object($ort)) {
                 $bistumObj = $ort->getBistum();
                 if (is_object($bistumObj)) {
                     $bistumUUID = $bistumObj->getUUID();
                 }
             }
         }
         if (!empty($bistumUUID)) {
             return $bistumUUID;
         } else {
             return '';
         }
     }
 }
 /**
  * Import Klosterstandort table into the FLOW domain_model tabel subugoe_germaniasacra_domain_model_klosterstandort
  * @return int
  */
 public function importKlosterstandortAction()
 {
     if ($this->logger) {
         $start = microtime(true);
     }
     $csvArr = $this->citekeysAction();
     /** @var \Doctrine\DBAL\Connection $sqlConnection */
     $sqlConnection = $this->entityManager->getConnection();
     $sql = 'SELECT * FROM Klosterstandort ORDER  BY Klosternummer ASC';
     $Klosterstandorts = $sqlConnection->fetchAll($sql);
     $literaturKeyArr = [];
     if (isset($Klosterstandorts) and is_array($Klosterstandorts)) {
         $nKlosterstandort = 0;
         foreach ($Klosterstandorts as $Klosterstandort) {
             $uid = $Klosterstandort['ID_Kloster'];
             $kloster = $Klosterstandort['Klosternummer'];
             $ort = $Klosterstandort['ID_alleOrte'];
             $von_von = $Klosterstandort['Standort_von_von'];
             $von_bis = $Klosterstandort['Standort_Datum_von_bis'];
             $von_verbal = $Klosterstandort['Standort_von_Verbal'];
             $bis_von = $Klosterstandort['Standort_Datum_bis_von'];
             $bis_bis = $Klosterstandort['Standort_Datum_bis_bis'];
             $bis_verbal = $Klosterstandort['Standort_bis_Verbal'];
             $gruender = $Klosterstandort['Gruender'];
             $bemerkung = $Klosterstandort['interne_Anmerkungen'];
             $breite = $Klosterstandort['Breite'];
             $laenge = $Klosterstandort['Laenge'];
             if ($laenge > 180 || $laenge < -180) {
                 $laenge = '';
             }
             if ($breite > 90 || $breite < -90) {
                 $breite = '';
             }
             $bemerkung_standort = $Klosterstandort['BemerkungenStandort'];
             $temp_literatur_alt = $Klosterstandort['Literaturnachweise'];
             $lit = $temp_literatur_alt;
             $ortObject = $this->ortRepository->findOneByUid($ort);
             $klosterObject = $this->klosterRepository->findOneByUid($kloster);
             if (is_object($klosterObject) && $klosterObject !== null && (is_object($ortObject) && $ortObject !== null)) {
                 $KlosterstandortObject = new Klosterstandort();
                 $KlosterstandortObject->setUid($uid);
                 if (isset($kloster) && !empty($kloster)) {
                     $klosterObject = $this->klosterRepository->findOneByUid($kloster);
                     $KlosterstandortObject->setKloster($klosterObject);
                 }
                 if (isset($ort) && !empty($ort)) {
                     $ortObject = $this->ortRepository->findOneByUid($ort);
                     $KlosterstandortObject->setOrt($ortObject);
                 }
                 $KlosterstandortObject->setVon_von($von_von);
                 $KlosterstandortObject->setVon_bis($von_bis);
                 $KlosterstandortObject->setVon_verbal($von_verbal);
                 $KlosterstandortObject->setBis_von($bis_von);
                 $KlosterstandortObject->setBis_bis($bis_bis);
                 $KlosterstandortObject->setBis_verbal($bis_verbal);
                 $KlosterstandortObject->setGruender($gruender);
                 $KlosterstandortObject->setBemerkung($bemerkung);
                 $KlosterstandortObject->setBreite($breite);
                 $KlosterstandortObject->setLaenge($laenge);
                 $KlosterstandortObject->setBemerkung_standort($bemerkung_standort);
                 $KlosterstandortObject->setTemp_literatur_alt($temp_literatur_alt);
                 $this->klosterstandortRepository->add($KlosterstandortObject);
                 $this->persistenceManager->persistAll();
                 if (isset($lit) && !empty($lit)) {
                     $lit = trim($lit, "- −");
                     $lit = str_replace(" − ", " - ", $lit);
                     $lit = str_replace(" — ", " - ", $lit);
                     $lit = str_replace("\r\n", " - ", $lit);
                     $lit = str_replace("—", " - ", $lit);
                     $lit = str_replace(" – ", " - ", $lit);
                     $lit = str_replace(", S[^.]", ", S.", $lit);
                     $lit = str_replace(",S.", ", S.", $lit);
                     $lits = explode(" - ", $lit);
                     foreach ($lits as $key => $litItem) {
                         $parts = trim($litItem);
                         $parts = explode(', S.', $parts);
                         $buch = trim($parts[0]);
                         $buch = utf8_decode($buch);
                         $seite = "";
                         if (count($parts) > 1) {
                             $seite = 'S. ' . trim($parts[1], ' .');
                         }
                         $beschreibung = $seite;
                         if (array_key_exists($buch, $csvArr)) {
                             $citekey = $csvArr[$buch]['citekey'];
                             if (!empty($citekey)) {
                                 if ($citekey and $csvArr[$buch]['detail'] and $csvArr[$buch]['detail'] != '#N/A') {
                                     if ($beschreibung and !strpos($csvArr[$buch]['detail'], $beschreibung)) {
                                         $beschreibung = $csvArr[$buch]['detail'] . ', ' . $beschreibung;
                                     } else {
                                         $beschreibung = $csvArr[$buch]['detail'];
                                     }
                                 }
                                 $literaturKey = $uid . "-" . $citekey . "-" . utf8_decode($beschreibung);
                                 if (!in_array($literaturKey, $literaturKeyArr)) {
                                     array_push($literaturKeyArr, $literaturKey);
                                     $literaturObject = new Literatur();
                                     $literaturObject->setCitekey($citekey);
                                     $literaturObject->setBeschreibung($beschreibung);
                                     $this->literaturRepository->add($literaturObject);
                                     $this->persistenceManager->persistAll();
                                     $literaturUUID = $literaturObject->getUUID();
                                     $klosterhasliteraturObject = new KlosterHasLiteratur();
                                     $klosterhasliteraturObject->setKloster($klosterObject);
                                     $literaturObject = $this->literaturRepository->findByIdentifier($literaturUUID);
                                     $klosterhasliteraturObject->setLiteratur($literaturObject);
                                     $this->klosterHasLiteraturRepository->add($klosterhasliteraturObject);
                                     $this->persistenceManager->persistAll();
                                 }
                             } else {
                                 $this->importExportLogger->log('Kein citekey für das Buch ' . $buch . ' beim Kloster mit der Id = ' . $kloster . ' vorhanden.', LOG_ERR);
                             }
                         } else {
                             $this->importExportLogger->log('Entweder keine Literatur oder keine Übereinstimmung für das Kloster mit der Id = ' . $kloster . ' vorhanden.', LOG_ERR);
                             $this->importExportLogger->log('Der Buchtitel lautet: ' . utf8_encode($buch), LOG_INFO);
                         }
                     }
                 }
                 $nKlosterstandort++;
             } else {
                 if ($klosterObject === null) {
                     $this->importExportLogger->log('Entweder ist das Feld Klosternummer in Klosterstandorttabelle leer oder das Klosterobject in der Klostertabelle für das Kloster mit der Id = ' . $kloster . ' wurde nicht gefunden.', LOG_ERR);
                 }
                 if ($ortObject === null) {
                     $this->importExportLogger->log('Entweder ist das Feld ID_alleOrte in Klosterstandorttabelle leer oder das Ortobject in der Orttabelle für den Ort mit der Id = ' . $ort . ' wurde nicht gefunden.', LOG_ERR);
                 }
             }
         }
         if ($this->logger) {
             $end = microtime(true);
             $time = number_format($end - $start, 2);
             $this->logger->log('Klosterstandort import completed in ' . round($time / 60, 2) . ' minutes.');
         }
         return $nKlosterstandort;
     }
 }
 /**
  */
 public function newAction()
 {
     $this->view->assign('klosters', $this->klosterRepository->findAll());
     $this->view->assign('orts', $this->ortRepository->findAll());
 }