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; }
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; }
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 {