/** * Delete premium associated w/ contribution page. * * @param int $contributionPageID */ public static function deletePremium($contributionPageID) { if (!$contributionPageID) { return; } //need to delete entries from civicrm_premiums //as well as from civicrm_premiums_product, CRM-4586 $params = array('entity_id' => $contributionPageID, 'entity_table' => 'civicrm_contribution_page'); $premium = new CRM_Contribute_DAO_Premium(); $premium->copyValues($params); $premium->find(); while ($premium->fetch()) { //lets delete from civicrm_premiums_product $premiumsProduct = new CRM_Contribute_DAO_PremiumsProduct(); $premiumsProduct->premiums_id = $premium->id; $premiumsProduct->delete(); //now delete premium $premium->delete(); } }
/** * This function sets the default values for the form. Note that in edit/view mode * the default values are retrieved from the database * * @access public * @return void */ function setDefaultValues() { $defaults = array(); if ($this->_pid) { $dao = new CRM_Contribute_DAO_PremiumsProduct(); $dao->id = $this->_pid; $dao->find(true); $defaults['product_id'] = $dao->product_id; $defaults['weight'] = $dao->weight; } if (!isset($defaults['weight']) || !$defaults['weight']) { $pageID = CRM_Utils_Request::retrieve('id', 'Positive', $this, false, 0); require_once 'CRM/Contribute/DAO/Premium.php'; $dao = new CRM_Contribute_DAO_Premium(); $dao->entity_table = 'civicrm_contribution_page'; $dao->entity_id = $pageID; $dao->find(true); $premiumID = $dao->id; $sql = 'SELECT max( weight ) as max_weight FROM civicrm_premiums_product WHERE premiums_id = %1'; $params = array(1 => array($premiumID, 'Integer')); $dao =& CRM_Core_DAO::executeQuery($sql, $params); $dao->fetch(); $defaults['weight'] = $dao->max_weight + 1; } return $defaults; }