Exemplo n.º 1
0
 public function mergeRecords($targetOccid, $sourceOccid)
 {
     $status = true;
     $editorManager = new OccurrenceEditorManager($this->conn);
     if ($editorManager->mergeRecords($targetOccid, $sourceOccid)) {
         if (!$editorManager->deleteOccurrence($sourceOccid)) {
             $this->errorStr = $editorManager->getErrorStr();
         }
     } else {
         $this->errorStr = $editorManager->getErrorStr;
         $status = false;
     }
     return $status;
 }
Exemplo n.º 2
0
 if ($action == 'Add Record') {
     $statusStr = $occManager->addOccurrence($_POST);
     if (strpos($statusStr, 'SUCCESS') !== false) {
         $occManager->setQueryVariables();
         $qryCnt = $occManager->getQueryRecordCount();
         $qryCnt++;
         if ($goToMode) {
             //Go to new record
             $occIndex = $qryCnt;
         } else {
             //Stay on record and get $occId
             $occId = $occManager->getOccId();
         }
     }
 } elseif ($action == 'Delete Occurrence') {
     $statusStr = $occManager->deleteOccurrence($occId);
     if (strpos($statusStr, 'SUCCESS') !== false) {
         $occId = 0;
         $occManager->setOccId(0);
     }
 } elseif ($action == 'Transfer Record') {
     $transferCollid = $_POST['transfercollid'];
     if ($transferCollid) {
         if ($occManager->transferOccurrence($occId, $transferCollid)) {
             if (!isset($_POST['remainoncoll']) || !$_POST['remainoncoll']) {
                 $occManager->setCollId($transferCollid);
                 $collId = $transferCollid;
                 $collMap = $occManager->getCollMap();
             }
         } else {
             $statusStr = $occManager->getErrorStr();
 public function mergeRecords($targetOccid, $sourceOccid)
 {
     global $charset;
     if (!$targetOccid || !$sourceOccid) {
         return 'ERROR: target or source is null';
     }
     if ($targetOccid == $sourceOccid) {
         return 'ERROR: target and source are equal';
     }
     $status = true;
     $oArr = array();
     //Merge records
     $sql = 'SELECT * FROM omoccurrences WHERE occid = ' . $targetOccid . ' OR occid = ' . $sourceOccid;
     $rs = $this->conn->query($sql);
     while ($r = $rs->fetch_assoc()) {
         $tempArr = array_change_key_case($r);
         $id = $tempArr['occid'];
         unset($tempArr['occid']);
         unset($tempArr['collid']);
         unset($tempArr['dbpk']);
         unset($tempArr['datelastmodified']);
         $oArr[$id] = $tempArr;
     }
     $rs->free();
     $tArr = $oArr[$targetOccid];
     $sArr = $oArr[$sourceOccid];
     $sqlFrag = '';
     foreach ($sArr as $k => $v) {
         if ($v != '' && $tArr[$k] == '') {
             $sqlFrag .= ',' . $k . '="' . $v . '"';
         }
     }
     if ($sqlFrag) {
         //Remap source to target
         $sqlIns = 'UPDATE omoccurrences SET ' . substr($sqlFrag, 1) . ' WHERE occid = ' . $targetOccid;
         //echo $sqlIns;
         $this->conn->query($sqlIns);
     }
     //Remap determinations
     $sql = 'UPDATE omoccurdeterminations SET occid = ' . $targetOccid . ' WHERE occid = ' . $sourceOccid;
     $this->conn->query($sql);
     //Delete occurrence edits
     $sql = 'DELETE FROM omoccuredits WHERE occid = ' . $sourceOccid;
     $this->conn->query($sql);
     //Remap images
     $sql = 'UPDATE images SET occid = ' . $targetOccid . ' WHERE occid = ' . $sourceOccid;
     $this->conn->query($sql);
     //Remap comments
     $sql = 'UPDATE omoccurcomments SET occid = ' . $targetOccid . ' WHERE occid = ' . $sourceOccid;
     $this->conn->query($sql);
     //Remap exsiccati
     $sql = 'UPDATE omexsiccatiocclink SET occid = ' . $targetOccid . ' WHERE occid = ' . $sourceOccid;
     $this->conn->query($sql);
     //Remap occurrence dataset links
     $sql = 'UPDATE omoccurdatasetlink SET occid = ' . $targetOccid . ' WHERE occid = ' . $sourceOccid;
     $this->conn->query($sql);
     //Remap loans
     $sql = 'UPDATE omoccurloanslink SET occid = ' . $targetOccid . ' WHERE occid = ' . $sourceOccid;
     $this->conn->query($sql);
     //Remap checklists voucher links
     $sql = 'UPDATE fmvouchers SET occid = ' . $targetOccid . ' WHERE occid = ' . $sourceOccid;
     $this->conn->query($sql);
     //Remap survey lists
     $sql = 'UPDATE omsurveyoccurlink SET occid = ' . $targetOccid . ' WHERE occid = ' . $sourceOccid;
     $this->conn->query($sql);
     //Delete source record data through the Editor class so that record is properly archived
     $editorManager = new OccurrenceEditorManager();
     $status = $editorManager->deleteOccurrence($sourceOccid);
     if (strpos($status, 'ERROR') === 0) {
         $status = '';
     }
     return $status;
 }
Exemplo n.º 4
0
     if ($occManager->addOccurrence($_POST)) {
         $occManager->setQueryVariables();
         $qryCnt = $occManager->getQueryRecordCount();
         $qryCnt++;
         if ($goToMode) {
             //Go to new record
             $occIndex = $qryCnt;
         } else {
             //Stay on record and get $occId
             $occId = $occManager->getOccId();
         }
     } else {
         $statusStr = $occManager->getErrorStr();
     }
 } elseif ($action == 'Delete Occurrence') {
     if ($occManager->deleteOccurrence($occId)) {
         $occId = 0;
         $occManager->setOccId(0);
     } else {
         $statusStr = $occManager->getErrorStr();
     }
 } elseif ($action == 'Transfer Record') {
     $transferCollid = $_POST['transfercollid'];
     if ($transferCollid) {
         if ($occManager->transferOccurrence($occId, $transferCollid)) {
             if (!isset($_POST['remainoncoll']) || !$_POST['remainoncoll']) {
                 $occManager->setCollId($transferCollid);
                 $collId = $transferCollid;
                 $collMap = $occManager->getCollMap();
             }
         } else {