/** * * @param RP_Family_Record $family */ function update_fam_events($family) { $old_events = RP_Dao_Factory::get_rp_fam_event_dao($this->credentials->prefix)->load_list($family->id, $this->batch_id); if ($old_events != null && count($old_events) > 0) { foreach ($old_events as $eve) { RP_Dao_Factory::get_rp_event_detail_dao($this->credentials->prefix)->delete($eve->event_id); RP_Dao_Factory::get_rp_event_cite_dao($this->credentials->prefix)->delete_by_event_id($eve->event_id); RP_Dao_Factory::get_rp_source_cite_dao($this->credentials->prefix)->delete_orphans(); } RP_Dao_Factory::get_rp_fam_event_dao($this->credentials->prefix)->delete_by_fam($family->id, $this->batch_id); $this->transaction->commit_no_close(); } foreach ($family->events as $p_event) { $event = new RP_Event_Detail(); $event->event_type = $p_event->tag === 'EVEN' ? $p_event->type : $p_event->_TYPES[$p_event->tag]; $event->classification = $p_event->descr; $event->event_date = $p_event->date; $event->place = $p_event->place->name; $event->resp_agency = $p_event->resp_agency; $event->religious_aff = $p_event->religious_affiliation; $event->cause = $p_event->cause; $event->restriction_notice = $p_event->restriction; $id = null; try { $id = RP_Dao_Factory::get_rp_event_detail_dao($this->credentials->prefix)->insert($event); } catch (Exception $e) { error_log($e->getMessage() . "::" . RP_Persona_Helper::trace_caller(), 0); echo $e->getMessage(); throw $e; } $fam_event = new RP_Fam_Event(); $fam_event->fam_id = $family->id; $fam_event->fam_batch_id = $this->batch_id; $fam_event->event_id = $id; try { RP_Dao_Factory::get_rp_fam_event_dao($this->credentials->prefix)->insert($fam_event); } catch (Exception $e) { error_log($e->getMessage() . "::" . RP_Persona_Helper::trace_caller(), 0); echo $e->getMessage(); throw $e; } $this->update_event_citations($id, $this->batch_id, $p_event->citations); } }