Update der Person in ALMA Tabelle, wenn Personen zusammengelegt werden

Falls nur die zu löschende Person in ALMA vorhanden ist, mit der zu
behaltenden Person ersetzen.
Falls bereits die zu ersetzende UND zu löschende Person in ALMA
vorhanden sind, muss erst direkt im ALMA Bibliothekssystem und in der
tbl_alma gelöscht werden.

Signed-off-by: Cris <hainberg@technikum-wien.at>
This commit is contained in:
Cris
2020-11-04 15:29:36 +01:00
parent fa73cf5272
commit 01032c63d3
+47
View File
@@ -135,6 +135,52 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
}
else
{
// Wenn Person in ALMA Bibliothek vorkommt, ggf. die Person dort übernehmen
$alma_has_personToKeep = false;
$alma_has_personToDelete = false;
$alma_update_obj = new StdClass();
$alma_query_upd = '';
$alma_query = "
SELECT *
FROM sync.tbl_alma
WHERE (
person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . " OR
person_id = " . $db->db_add_param($personToDelete, FHC_INTEGER) . "
)";
if ($result = $db->db_query($alma_query))
{
while ($row = $db->db_fetch_object($result))
{
if ($row->person_id == $personToKeep)
{
$alma_has_personToKeep = true;
}
if ($row->person_id == $personToDelete)
{
$alma_has_personToDelete = true;
$alma_update_obj = $row;
}
}
}
// Falls nur die zu löschende Person in ALMA vorhanden ist, mit der zu behaltenden Person ersetzen
if ($alma_has_personToDelete && !$alma_has_personToKeep)
{
$alma_query_upd = "
UPDATE sync.tbl_alma
SET person_id = " . $db->db_add_param($personToKeep, FHC_INTEGER) . "
WHERE alma_match_id = " . $alma_update_obj->alma_match_id . "
AND person_id = " . $alma_update_obj->person_id . ";";
}
// Falls bereits doppelte Einträge in ALMA vorhanden sind, manuell lösen
elseif ($alma_has_personToDelete && $alma_has_personToKeep)
{
die('Es sind bereits beide Personen in ALMA vorhanden. Bitte zuerst direkt im ALMA Bibliotheksystem und in der tbl_alma lösen.');
}
$personToDelete_obj = new person();
if ($personToDelete_obj->load($personToDelete))
{
@@ -346,6 +392,7 @@ if (isset($personToDelete) && isset($personToKeep) && $personToDelete >= 0 && $p
$sql_query_upd1 .= "UPDATE system.tbl_person_lock SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$sql_query_upd1 .= "UPDATE wawi.tbl_betriebsmittelperson SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$sql_query_upd1 .= "UPDATE wawi.tbl_konto SET person_id=" . $db->db_add_param($personToKeep, FHC_INTEGER) . " WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";
$sql_query_upd1 .= $alma_query_upd;
$sql_query_upd1 .= "DELETE FROM public.tbl_person WHERE person_id=" . $db->db_add_param($personToDelete, FHC_INTEGER) . ";";