public static function updateMode() { $finalResult = array(); if (CRM_Utils_Array::value('mode', $_REQUEST) && CRM_Utils_Array::value('entityId', $_REQUEST) && CRM_Utils_Array::value('entityTable', $_REQUEST)) { $mode = CRM_Utils_Type::escape($_REQUEST['mode'], 'Integer'); $entityId = CRM_Utils_Type::escape($_REQUEST['entityId'], 'Integer'); $entityTable = CRM_Utils_Type::escape($_REQUEST['entityTable'], 'String'); if (!empty($_REQUEST['linkedEntityTable'])) { $result = CRM_Core_BAO_RecurringEntity::updateModeLinkedEntity($entityId, $_REQUEST['linkedEntityTable'], $entityTable); } $dao = new CRM_Core_DAO_RecurringEntity(); if (!empty($result)) { $dao->entity_id = $result['entityId']; $dao->entity_table = $result['entityTable']; } else { $dao->entity_id = $entityId; $dao->entity_table = $entityTable; } if ($dao->find(TRUE)) { $dao->mode = $mode; $dao->save(); $finalResult['status'] = 'Done'; } else { $finalResult['status'] = 'Error'; } } CRM_Utils_JSON::output($finalResult); }
/** * Returns the list of fields that can be exported * * @param bool $prefix * * @return array */ static function &export($prefix = false) { if (!self::$_export) { self::$_export = array(); $fields = self::fields(); foreach ($fields as $name => $field) { if (CRM_Utils_Array::value('export', $field)) { if ($prefix) { self::$_export['recurring_entity'] =& $fields[$name]; } else { self::$_export[$name] =& $fields[$name]; } } } } return self::$_export; }
/** * 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; }