}
/**
- * Save records in civicrm_recurring_entity table.
+ * Create or update a RecurringEntity.
*
* @param array $params
- * Reference array contains the values submitted by the form.
- *
- * @return object
+ * @return CRM_Core_DAO_RecurringEntity
*/
- public static function add(&$params) {
- if (!empty($params['id'])) {
- CRM_Utils_Hook::pre('edit', 'RecurringEntity', $params['id'], $params);
- }
- else {
- CRM_Utils_Hook::pre('create', 'RecurringEntity', NULL, $params);
- }
-
- $daoRecurringEntity = new CRM_Core_DAO_RecurringEntity();
- $daoRecurringEntity->copyValues($params);
- $daoRecurringEntity->find(TRUE);
- $result = $daoRecurringEntity->save();
-
- if (!empty($params['id'])) {
- CRM_Utils_Hook::post('edit', 'RecurringEntity', $daoRecurringEntity->id, $daoRecurringEntity);
- }
- else {
- CRM_Utils_Hook::post('create', 'RecurringEntity', $daoRecurringEntity->id, $daoRecurringEntity);
- }
- return $result;
+ public static function add($params) {
+ return self::writeRecord($params);
}
/**
- * Wrapper for the function add() to add entry in recurring entity
+ * Convenience wrapper for self::writeRecord
*
* @param int $parentId
* Parent entity id .
* @param string $entityTable
* Name of the entity table .
*
- *
- * @return object
+ * @return CRM_Core_DAO_RecurringEntity
*/
public static function quickAdd($parentId, $entityId, $entityTable) {
- $params
- = [
- 'parent_id' => $parentId,
- 'entity_id' => $entityId,
- 'entity_table' => $entityTable,
- ];
- return self::add($params);
+ $params = [
+ 'parent_id' => $parentId,
+ 'entity_id' => $entityId,
+ 'entity_table' => $entityTable,
+ ];
+ return self::writeRecord($params);
}
/**
* Generate new DAOs and along with entries in civicrm_recurring_entity table.
*
* @return array
+ * @throws CRM_Core_Exception
*/
public function generateEntities() {
self::setStatus(self::RUNNING);
}
}
if (empty($findCriteria)) {
- CRM_Core_Error::fatal("Find criteria missing to generate form. Make sure entity_id and table is set.");
+ throw new CRM_Core_Exception("Find criteria missing to generate form. Make sure entity_id and table is set.");
}
$count = 0;
*
*
* @return object
+ * @throws new CRM_Core_Exception
*/
public static function copyCreateEntity($entityTable, $fromCriteria, $newParams, $createRecurringEntity = TRUE) {
$daoName = self::$_tableDAOMapper[$entityTable];
if (!$daoName) {
- CRM_Core_Error::fatal("DAO Mapper missing for $entityTable.");
+ throw new CRM_Core_Exception("DAO Mapper missing for $entityTable.");
}
$newObject = CRM_Core_DAO::copyGeneric($daoName, $fromCriteria, $newParams);
$updateDAO = CRM_Core_DAO::cascadeUpdate($daoName, $obj->id, $entityID, $skipData);
}
else {
- CRM_Core_Error::fatal("DAO Mapper missing for $entityTable.");
+ throw new CRM_Core_Exception("DAO Mapper missing for $entityTable.");
}
}
// done with processing. lets unset static var.
if (empty($hasaRecurringRecord)) {
// check if its a linked entity
if (array_key_exists($obj->__table, self::$_linkedEntitiesInfo) &&
- !CRM_Utils_Array::value('is_multirecord', self::$_linkedEntitiesInfo[$obj->__table])
+ empty(self::$_linkedEntitiesInfo[$obj->__table]['is_multirecord'])
) {
$linkedDAO = new self::$_tableDAOMapper[$obj->__table]();
$linkedDAO->id = $obj->id;
foreach (self::$_linkedEntitiesInfo as $linkedTable => $linfo) {
$daoName = self::$_tableDAOMapper[$linkedTable];
if (!$daoName) {
- CRM_Core_Error::fatal("DAO Mapper missing for $linkedTable.");
+ throw new CRM_Core_Exception("DAO Mapper missing for $linkedTable.");
}
$linkedDao = new $daoName();