/**
  * @todo Description of function deletePersona
  * @param  $id
  * @param  $batchId
  * @return
  */
 public function delete_persona($id, $batch_id)
 {
     RP_Dao_Factory::get_rp_indi_note_dao($this->prefix)->delete_by_indi_id($id, $batch_id);
     RP_Dao_Factory::get_rp_indi_event_dao($this->prefix)->delete_by_indi_id($id, $batch_id);
     RP_Dao_Factory::get_rp_indi_cite_dao($this->prefix)->delete_by_indi_id($id, $batch_id);
     RP_Dao_Factory::get_rp_indi_name_dao($this->prefix)->delete_by_indi_id($id, $batch_id);
     RP_Dao_Factory::get_rp_indi_dao($this->prefix)->delete($id, $batch_id);
 }
 /**
  *
  * @param RP_Individual_Record $person
  */
 function update_indi_events($person)
 {
     $old_events = RP_Dao_Factory::get_rp_indi_event_dao($this->credentials->prefix)->load_list($person->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_indi_event_dao($this->credentials->prefix)->delete_by_indi_id($person->id, $this->batch_id);
         $this->transaction->commit_no_close();
     }
     foreach ($person->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->addrId;
         $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;
         }
         $indi_event = new RP_Indi_Event();
         $indi_event->indi_id = $person->id;
         $indi_event->indi_batch_id = $this->batch_id;
         $indi_event->event_id = $id;
         try {
             RP_Dao_Factory::get_rp_indi_event_dao($this->credentials->prefix)->insert($indi_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);
     }
     foreach ($person->attributes as $p_event) {
         $event = new RP_Event_Detail();
         $event->event_type = $p_event->tag === 'FACT' ? $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->addrId;
         $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;
         }
         $indi_event = new RP_Indi_Event();
         $indi_event->indi_id = $person->id;
         $indi_event->indi_batch_id = $this->batch_id;
         $indi_event->event_id = $id;
         try {
             RP_Dao_Factory::get_rp_indi_event_dao($this->credentials->prefix)->insert($indi_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);
     }
 }