/**
  *
  * @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);
     }
 }