copyValues($params); if ($premium->find(TRUE)) { $premium->product_name = $premium->name; CRM_Core_DAO::storeValues($premium, $defaults); return $premium; } return NULL; } /** * Update the is_active flag in the db. * * @param int $id * Id of the database record. * @param bool $is_active * Value we want to set the is_active field. * * @return Object * DAO object on success, null otherwise */ public static function setIsActive($id, $is_active) { if (!$is_active) { $dao = new CRM_Contribute_DAO_PremiumsProduct(); $dao->product_id = $id; $dao->delete(); } return CRM_Core_DAO::setFieldValue('CRM_Contribute_DAO_Product', $id, 'is_active', $is_active); } /** * Add a premium product to the database, and return it. * * @param array $params * Reference array contains the values submitted by the form. * @param array $ids * Reference array contains the id. * * @return CRM_Contribute_DAO_Product */ public static function add(&$params, &$ids) { $params = array_merge(array( 'id' => CRM_Utils_Array::value('premium', $ids), 'image' => '', 'thumbnail' => '', 'is_active' => 0, 'is_deductible' => FALSE, 'currency' => CRM_Core_Config::singleton()->defaultCurrency, ), $params); // Modify the submitted values for 'image' and 'thumbnail' so that we use // local URLs for these images when possible. $params['image'] = CRM_Utils_String::simplifyURL($params['image'], TRUE); $params['thumbnail'] = CRM_Utils_String::simplifyURL($params['thumbnail'], TRUE); // Save and return $premium = new CRM_Contribute_DAO_Product(); $premium->copyValues($params); $premium->save(); return $premium; } /** * Delete premium Types. * * @param int $productID */ public static function del($productID) { //check dependencies $premiumsProduct = new CRM_Contribute_DAO_PremiumsProduct(); $premiumsProduct->product_id = $productID; if ($premiumsProduct->find(TRUE)) { $session = CRM_Core_Session::singleton(); $message .= ts('This Premium is being linked to Online Contribution page. Please remove it in order to delete this Premium.', array(1 => CRM_Utils_System::url('civicrm/admin/contribute', 'reset=1')), ts('Deletion Error'), 'error'); CRM_Core_Session::setStatus($message); return CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm/admin/contribute/managePremiums', 'reset=1&action=browse')); } //delete from financial Type table $premium = new CRM_Contribute_DAO_Product(); $premium->id = $productID; $premium->delete(); } }