mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
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:
@@ -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) . ";";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user