/** * * @param RP_Individual_Record $person */ function update_names($person) { $old_names = RP_Dao_Factory::get_rp_indi_name_dao($this->credentials->prefix)->load_list($person->id, $this->batch_id); if ($old_names != null && count($old_names) > 0) { foreach ($old_names as $name) { RP_Dao_Factory::get_rp_name_personal_dao($this->credentials->prefix)->delete($name->name_id); } RP_Dao_Factory::get_rp_indi_name_dao($this->credentials->prefix)->delete_by_indi_id($person->id, $this->batch_id); $this->transaction->commit_no_close(); } $seq = 1; foreach ($person->names as $p_name) { $name = new RP_Name_Personal(); $name->personal_name = $p_name->get_name(); $name->name_type = $p_name->rp_name->type; $name->prefix = $p_name->rp_name->pieces->prefix; $g_name = $p_name->rp_name->get_given(); $name->given = $g_name === null ? '' : $g_name; $name->nickname = $p_name->rp_name->pieces->nick_name; $name->surname_prefix = $p_name->rp_name->pieces->surname_prefix; $s_name = $p_name->rp_name->get_surname(); $name->surname = $s_name === null ? '' : $s_name; $name->suffix = $p_name->rp_name->pieces->suffix; $id = null; try { $id = RP_Dao_Factory::get_rp_name_personal_dao($this->credentials->prefix)->insert($name); } catch (Exception $e) { error_log($e->getMessage() . "::" . RP_Persona_Helper::trace_caller(), 0); echo $e->getMessage(); throw $e; } $indi_name = new RP_Indi_Name(); $indi_name->indi_id = $person->id; $indi_name->indi_batch_id = $this->batch_id; $indi_name->name_id = $id; $indi_name->seq_nbr = $seq++; try { $id = RP_Dao_Factory::get_rp_indi_name_dao($this->credentials->prefix)->insert($indi_name); } catch (Exception $e) { error_log($e->getMessage() . "::" . RP_Persona_Helper::trace_caller(), 0); echo $e->getMessage(); throw $e; } } }