/** * Update rewards properties - availability, distributed,... * @param $data * * @return CrowdFundingReward|null */ protected function updateReward($data) { // Get reward. $keys = array("id" => JArrayHelper::getValue($data, "reward_id"), "project_id" => JArrayHelper::getValue($data, "project_id")); jimport("crowdfunding.reward"); $reward = new CrowdFundingReward(JFactory::getDbo()); $reward->load($keys); // DEBUG DATA JDEBUG ? $this->log->add(JText::_($this->textPrefix . "_DEBUG_REWARD_OBJECT"), $this->debugType, $reward->getProperties()) : null; // Check for valid reward. if (!$reward->getId()) { // Log data in the database $this->log->add(JText::_($this->textPrefix . "_ERROR_INVALID_REWARD"), $this->debugType, array("data" => $data, "reward object" => $reward->getProperties())); return null; } // Check for valida amount between reward value and payed by user $txnAmount = JArrayHelper::getValue($data, "txn_amount"); if ($txnAmount < $reward->getAmount()) { // Log data in the database $this->log->add(JText::_($this->textPrefix . "_ERROR_INVALID_REWARD_AMOUNT"), $this->debugType, array("data" => $data, "reward object" => $reward->getProperties())); return null; } // Verify the availability of rewards if ($reward->isLimited() and !$reward->getAvailable()) { // Log data in the database $this->log->add(JText::_($this->textPrefix . "_ERROR_REWARD_NOT_AVAILABLE"), $this->debugType, array("data" => $data, "reward object" => $reward->getProperties())); return null; } // Increase the number of distributed rewards // if there is a limit. if ($reward->isLimited()) { $reward->increaseDistributed(); $reward->updateDistributed(); } return $reward; }
/** * Delete image */ public function removeImage() { // Check for request forgeries. JSession::checkToken("get") or jexit(JText::_('JINVALID_TOKEN')); // Get item id $itemId = $this->input->get->getInt("id"); $redirectOptions = array("view" => "reward", "layout" => "edit", "id" => $itemId); // Create an reward object. jimport("crowdfunding.reward"); $reward = new CrowdFundingReward(JFactory::getDbo()); $reward->load($itemId); // Check for registered user if (!$reward->getId()) { $this->displayNotice(JText::_('COM_CROWDFUNDING_ERROR_INVALID_IMAGE'), $redirectOptions); return; } $imagesFolder = CrowdFundingHelper::getImagesFolder($reward->getUserId()); try { jimport('joomla.filesystem.folder'); jimport('joomla.filesystem.file'); jimport('joomla.filesystem.path'); $model = $this->getModel(); $model->removeImage($itemId, $imagesFolder); } catch (Exception $e) { JLog::add($e->getMessage()); throw new Exception(JText::_('COM_CROWDFUNDING_ERROR_SYSTEM')); } $this->displayMessage(JText::_('COM_CROWDFUNDING_IMAGE_DELETED'), $redirectOptions); }