if ($txt && fetch_val("SELECT is_leaf({$src})") == 't') { echo "Cannot create subsource under source #{$src}. "; echo "Please go back and check your source reference."; die; } $event = $_POST['event']; $person = $_POST['person']; $tag = $_POST['tag_fk']; $place = $_POST['place_fk']; if ($place == 0) { $place = 1; } $note = note_to_db($_POST['event_note']); $event_date = pad_date($_POST['date_1']) . $_POST['date_type'] . pad_date($_POST['date_2']) . '1'; $sort_date = parse_sort_date($_POST['sort_date'], $event_date); pg_query("BEGIN"); pg_query("UPDATE EVENTS SET tag_fk={$tag}, place_fk={$place}, event_date='{$event_date}',\n sort_date='{$sort_date}', event_note='{$note}' WHERE event_id = {$event}"); set_last_selected_place($place); set_last_edit($person); $source_id = add_source($person, $tag, $event, $src, $txt); if ($tag == 31) { // hard-coded reference to probate pg_query("SELECT generate_probate_witnesses({$event})"); } if ($_POST['age']) { // generate birth event add_birth($person, $event_date, $_POST['age'], $source_id); } pg_query("COMMIT"); header("Location: {$app_root}/family.php?person={$person}"); }
$relid_t = get_relation_id($target, 2); pg_query("\n UPDATE relation_citations\n SET relation_fk = {$relid_t}\n WHERE relation_fk = {$relid_s}\n "); pg_query("\n DELETE FROM relations\n WHERE relation_id = {$relid_s}\n "); } // transfer remaining relations pg_query("\n UPDATE relations\n SET child_fk = {$target}\n WHERE child_fk = {$source}\n "); pg_query("\n UPDATE relations\n SET parent_fk = {$target}\n WHERE parent_fk = {$source}\n "); // update source_linkage pg_query("\n UPDATE source_linkage\n SET person_fk = {$target}\n WHERE person_fk = {$source}\n "); // insert "event" for source person with a link to target person $event_note = " [p={$target}|ID #{$target}]"; $event = fetch_val("\n INSERT INTO events (\n tag_fk,\n place_fk,\n event_date,\n sort_date,\n event_note\n )\n VALUES (\n 1040,\n 1,\n '000000003000000001',\n '00010101',\n '{$event_note}'\n )\n RETURNING event_id\n "); add_participant($source, $event); pg_query("\n INSERT INTO merged (old_person_fk,new_person_fk)\n VALUES ({$source}, {$target})\n "); set_last_edit($source); set_last_edit($target); pg_query("\n COMMIT\n "); // return to main view of "stripped" person. header("Location: {$app_root}/family.php?person={$source}"); } else { // explain why the merge failed $title = "{$_App_name}: {$_Merge_persons_failed}"; require "./form_header.php"; echo "<h2>{$title}!</h2>\n"; $name_1 = get_name($person_1); $name_2 = get_name($person_2); echo "<p>{$_Cannot_merge} {$name_1} ({$_born} {$bdate_1}), {$_with} {$name_2} ({$_born} {$bdate_2}).<br />\n"; echo "{$_Reason}: {$reason}</p>\n"; echo para(to_url('../family.php', array(person => $person_1), "{$_Return_to} {$person_1} {$name_1}")); echo para(to_url('../family.php', array(person => $person_2), "{$_Return_to} {$person_2} {$name_2}")); echo "</body>\n</html>\n";