function preProcess() { $cid = CRM_Utils_Request::retrieve('cid', 'Positive', $this, FALSE); $oid = CRM_Utils_Request::retrieve('oid', 'Positive', $this, FALSE); if ($oid) { $this->_id = CRM_Utils_Request::retrieve('oid', 'Positive', $this, FALSE); } else { $this->assign('hide_contact', TRUE); $this->_id = $cid; } if (!CRM_Utils_Rule::positiveInteger($this->_id)) { CRM_Core_Error::fatal('We need a valid discount ID for view'); } $this->assign('id', $this->_id); $defaults = array(); $params = array('id' => $this->_id); require_once 'CRM/CiviDiscount/BAO/Item.php'; CRM_CiviDiscount_BAO_Item::retrieve($params, $defaults); require_once 'CRM/CiviDiscount/BAO/Track.php'; if ($cid) { $rows = CRM_CiviDiscount_BAO_Track::getUsageByContact($this->_id); } else { $rows = CRM_CiviDiscount_BAO_Track::getUsageByOrg($this->_id); } $this->assign('rows', $rows); $this->assign('code_details', $defaults); $this->ajaxResponse['tabCount'] = count($rows); if (!empty($defaults['code'])) { CRM_Utils_System::setTitle($defaults['code']); } }
/** * Constructor * @param string $entity * @param integer $entity_id * @param integer $contact_id * @param string $code * @param boolean $is_anonymous - ie are we trying to calculate whether it would be possible to find a discount cod */ function __construct($entity, $entity_id, $contact_id, $code, $is_display_field_mode) { if (empty($code) && empty($contact_id) && !$is_display_field_mode) { $this->discounts = array(); } else { $this->discounts = CRM_CiviDiscount_BAO_Item::getValidDiscounts(); } $this->entity = $entity; $this->contact_id = $contact_id; $this->entity_id = $entity_id; $this->code = trim($code); $this->is_display_field_mode = $is_display_field_mode; }
/** * Add the membership log record. * * @param array $params * Values to use in create. * * @return CRM_CiviDiscount_DAO_Track */ public static function create($params) { $hook = empty($params['id']) ? 'create' : 'edit'; CRM_Utils_Hook::pre($hook, 'DiscountTrack', CRM_Utils_Array::value('id', $params), $params); $dao = new CRM_CiviDiscount_DAO_Track(); $dao->copyValues($params); $dao->save(); if ($hook == 'create') { CRM_CiviDiscount_BAO_Item::incrementUsage($dao->item_id); } CRM_Utils_Hook::post($hook, 'DiscountTrack', $dao->id, $dao); return $dao; }
/** * Function to process the form * * @access public * @return None */ public function postProcess() { if ($this->_action & CRM_Core_Action::DELETE) { CRM_CiviDiscount_BAO_Item::del($this->_id); CRM_Core_Session::setStatus(ts('Selected Discount has been deleted.'), ts('Deleted'), 'success'); return; } if ($this->_action & CRM_Core_Action::COPY) { $params = $this->exportValues(); $newCode = CRM_CiviDiscount_Utils::randomString('abcdefghjklmnpqrstwxyz23456789', 8); CRM_CiviDiscount_BAO_Item::copy($this->_cloneID, $params, $newCode); CRM_Core_Session::setStatus(ts('Selected Discount has been duplicated.'), ts('Copied'), 'success'); return; } $params = $this->exportValues(); $params['count_max'] = (int) $params['count_max']; if ($this->_action & CRM_Core_Action::UPDATE) { $params['id'] = $this->_id; } $params['multi_valued'] = $this->_multiValued; if (isset($params['events']) && in_array(0, $params['events']) && count($params['events']) > 1) { CRM_Core_Session::setStatus(ts('You selected `any event` and specific events, specific events have been unset')); $params['events'] = array(0); } if (!empty($params['autodiscount_membership_type_id']) && count($params['autodiscount_membership_status_id']) == 0) { $params['autodiscount_membership_status_id'] = array(''); } $params['filters'] = $this->getFiltersFromParams($params); $params['autodiscount'] = $this->getAutoDiscountFromParams($params); if (!empty($params['advanced_autodiscount_filter_entity'])) { $this->addAdvancedFilterToAutodiscount($params, $params['advanced_autodiscount_filter_entity'], CRM_Utils_Array::value('advanced_autodiscount_filter_string', $params)); } $item = CRM_CiviDiscount_BAO_Item::add($params); CRM_Core_Session::setStatus(ts('The discount \'%1\' has been saved.', array(1 => $item->description ? $item->description : $item->code)), ts('Saved'), 'success'); }
/** * Returns an array of all discount codes. */ function _cividiscount_get_discounts() { return CRM_CiviDiscount_BAO_Item::getValidDiscounts(); }
function preProcess() { $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE); require_once 'CRM/Utils/Rule.php'; if (!CRM_Utils_Rule::positiveInteger($this->_id)) { CRM_Core_Error::fatal(ts('We need a valid discount ID for view')); } $this->assign('id', $this->_id); $defaults = array(); $params = array('id' => $this->_id); require_once 'CRM/CiviDiscount/BAO/Item.php'; CRM_CiviDiscount_BAO_Item::retrieve($params, $defaults); $this->assign('code_id', $defaults['id']); $this->assign('code', $defaults['code']); $this->assign('description', $defaults['description']); $this->assign('amount', $defaults['amount']); $this->assign('amount_type', $defaults['amount_type']); $this->assign('count_use', $defaults['count_use']); $this->assign('count_max', $defaults['count_max']); $this->assign('is_active', $defaults['is_active']); $this->assign('discount_term', $defaults['discount_term']); if (array_key_exists('expire_on', $defaults)) { $this->assign('expire_on', $defaults['expire_on']); } if (array_key_exists('active_on', $defaults)) { $this->assign('active_on', $defaults['active_on']); } if (array_key_exists('organization_id', $defaults)) { $this->assign('organization_id', $defaults['organization_id']); require_once 'CRM/Contact/BAO/Contact.php'; $orgname = CRM_Contact_BAO_Contact::displayName($defaults['organization_id']); $this->assign('organization', $orgname); } $this->_multiValued = array('autodiscount' => NULL, 'memberships' => NULL, 'events' => NULL, 'pricesets' => NULL, 'pp_types' => NULL); foreach ($this->_multiValued as $mv => $info) { if (!empty($defaults[$mv])) { $v = substr($defaults[$mv], 1, -1); $values = explode(CRM_Core_DAO::VALUE_SEPARATOR, $v); $defaults[$mv] = array(); if (!empty($values)) { foreach ($values as $val) { $defaults[$mv][] = $val; } } } } require_once 'CRM/CiviDiscount/Utils.php'; require_once 'CRM/Member/BAO/MembershipType.php'; if (array_key_exists('pp_types', $defaults)) { $pp_types = CRM_CiviDiscount_Utils::getPaymentProcessorTypes(); $defaults['pp_types'] = CRM_CiviDiscount_Utils::getIdsTitles($defaults['pp_types'], $pp_types); $this->assign('pp_types', $defaults['pp_types']); } if (array_key_exists('events', $defaults)) { $events = CRM_CiviDiscount_Utils::getEvents(); $defaults['events'] = CRM_CiviDiscount_Utils::getIdsTitles($defaults['events'], $events); $this->assign('events', $defaults['events']); } $membershipTypes = CRM_Member_BAO_MembershipType::getMembershipTypes(FALSE); if (array_key_exists('memberships', $defaults)) { $defaults['memberships'] = CRM_CiviDiscount_Utils::getIdsTitles($defaults['memberships'], $membershipTypes); $this->assign('memberships', $defaults['memberships']); } if (array_key_exists('autodiscount', $defaults)) { $defaults['autodiscount'] = CRM_CiviDiscount_Utils::getIdsTitles($defaults['autodiscount'], $membershipTypes); $this->assign('autodiscount', $defaults['autodiscount']); } if (array_key_exists('pricesets', $defaults)) { $priceSets = CRM_CiviDiscount_Utils::getPriceSets(); $defaults['pricesets'] = CRM_CiviDiscount_Utils::getIdsTitles($defaults['pricesets'], $priceSets); $this->assign('pricesets', $defaults['pricesets']); } CRM_Utils_System::setTitle($defaults['code']); }
static function isValid($code) { if (!CRM_CiviDiscount_BAO_Item::isExpired($code) && CRM_CiviDiscount_BAO_Item::isActive($code) && CRM_CiviDiscount_BAO_Item::isEnabled($code) && ($code['count_max'] == 0 || $code['count_max'] > $code['count_use'])) { return TRUE; } return FALSE; }
function preProcess() { $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE); require_once 'CRM/Utils/Rule.php'; if (!CRM_Utils_Rule::positiveInteger($this->_id)) { CRM_Core_Error::fatal(ts('We need a valid discount ID for view')); } $this->assign('id', $this->_id); $defaults = array(); $params = array('id' => $this->_id); require_once 'CRM/CiviDiscount/BAO/Item.php'; CRM_CiviDiscount_BAO_Item::retrieve($params, $defaults); require_once 'CRM/CiviDiscount/BAO/Track.php'; $rows = CRM_CiviDiscount_BAO_Track::getUsageByCode($this->_id); $this->assign('rows', $rows); $this->assign('code_details', $defaults); CRM_Utils_System::setTitle($defaults['code']); }