コード例 #1
0
ファイル: RecurringEntity.php プロジェクト: kidaa30/yes
 /**
  * This function deletes main entity and related linked entities from recurring-entity table
  *
  * @param int $entityId
  *   Entity id
  * @param string $entityTable
  *   Name of the entity table
  *
  *
  * @return bool|CRM_Core_DAO_RecurringEntity
  */
 public static function delEntity($entityId, $entityTable, $isDelLinkedEntities = FALSE)
 {
     if (empty($entityId) || empty($entityTable)) {
         return FALSE;
     }
     $dao = new CRM_Core_DAO_RecurringEntity();
     $dao->entity_id = $entityId;
     $dao->entity_table = $entityTable;
     if ($dao->find(TRUE)) {
         // make sure its not a linked entity thats being deleted
         if ($isDelLinkedEntities && !array_key_exists($entityTable, self::$_linkedEntitiesInfo)) {
             // delete all linked entities from recurring entity table
             foreach (self::$_linkedEntitiesInfo as $linkedTable => $linfo) {
                 $daoName = self::$_tableDAOMapper[$linkedTable];
                 if (!$daoName) {
                     CRM_Core_Error::fatal("DAO Mapper missing for {$linkedTable}.");
                 }
                 $linkedDao = new $daoName();
                 $linkedDao->{$linfo}['entity_id_col'] = $entityId;
                 $linkedDao->{$linfo}['entity_table_col'] = $entityTable;
                 $linkedDao->find();
                 while ($linkedDao->fetch()) {
                     CRM_Core_BAO_RecurringEntity::delEntity($linkedDao->id, $linkedTable, FALSE);
                 }
             }
         }
         // delete main entity
         return $dao->delete();
     }
     return FALSE;
 }