public function unlockbyqrcodeAction() { try { $customer_id = $this->getSession()->getCustomerId(); if (!$customer_id) { throw new Exception($this->_('You must be logged in to use a discount')); } if ($data = Zend_Json::decode($this->getRequest()->getRawBody())) { $promotion = new Promotion_Model_Promotion(); $promotion->find(array("unlock_code" => $data["qrcode"], "value_id" => $data["value_id"])); $promotion_id = $promotion->getId(); $promotion_customer = new Promotion_Model_Customer(); $promotion_customer->findLast($promotion_id, $customer_id); if ($promotion->getUnlockCode() != $data["qrcode"]) { throw new Exception($this->_("This code is unrecognized")); } if ($promotion_customer->getIsUsed() != "" && $promotion_customer->getIsUsed() == 0) { throw new Exception($this->_("You have already use this code")); } if (!$promotion_customer->getId()) { $promotion_customer->setPromotionId($promotion_id)->setCustomerId($customer_id); } $promotion_customer->setIsUsed(0)->save(); $html = array("success" => 1); } } catch (Exception $e) { $html = array("error" => 1, "message" => $e->getMessage()); } $this->_sendHtml($html); }
public function editpostAction() { if ($datas = $this->getRequest()->getPost()) { $html = ''; try { // Test s'il y a un value_id if (empty($datas['value_id'])) { throw new Exception($this->_('An error occurred while saving. Please try again later.')); } // Récupère l'option_value en cours $option_value = new Application_Model_Option_Value(); $option_value->find($datas['value_id']); // Instancie une nouvelle promotion $promotion = new Promotion_Model_Promotion(); // Test si l'option des réductions spéciales est activée et payée if ($id = $this->getRequest()->getParam('id')) { $promotion->find($id); if ($promotion->getValueId() and $promotion->getValueId() != $option_value->getId()) { throw new Exception('An error occurred while saving. Please try again later.'); } } //Vérifs champs if (empty($datas['title']) || empty($datas['description']) || empty($datas['title'])) { throw new Exception($this->_('An error occurred while saving your discount. Please fill in all fields')); die; } if (!isset($datas['is_illimited']) && empty($datas['end_at'])) { throw new Exception($this->_('An error occurred while saving your discount. Please fill in all fields')); die; } if (!empty($datas['end_at'])) { $date_actuelle = new Zend_Date(); $date_modif = new Zend_Date($datas['end_at'], 'y-MM-dd'); if ($date_modif < $date_actuelle) { throw new Exception($this->_('Please select an end date greater than the current date.')); die; } } if (!empty($datas['is_illimited'])) { $datas['end_at'] = null; } $datas['force_validation'] = !empty($datas['force_validation']); $datas['is_unique'] = !empty($datas['is_unique']); $datas['owner'] = 1; $promotion->setData($datas); if (isset($datas['available_for']) and $datas['available_for'] == 'all') { $promotion->resetConditions(); } $promotion->save(); $html = array('promotion_id' => $promotion->getId(), 'success_message' => $this->_('Discount successfully saved'), 'message_timeout' => 2, 'message_button' => 0, 'message_loader' => 0); } catch (Exception $e) { $html = array('message' => $e->getMessage(), 'url' => '/promotion/admin/list'); } $this->getLayout()->setHtml(Zend_Json::encode($html)); } }
public function deletepostAction() { $id = $this->getRequest()->getParam("id"); $html = ''; try { $promotion = new Promotion_Model_Promotion(); $promotion->find($id); if ($promotion->getUnlockBy() == "qrcode") { $image_name = $promotion->getId() . "-qrpromotion_qrcode.png"; $file = Core_Model_Directory::getBasePathTo("/images/application/" . $this->getApplication()->getId() . "/application/qrpromotion/" . $image_name); if (file_exists($file)) { unlink($file); } } $promotion->delete(); $html = array('promotion_id' => $id, 'success' => 1, 'success_message' => $this->_('Discount successfully deleted'), 'message_timeout' => 2, 'message_button' => 0, 'message_loader' => 0); } catch (Exception $e) { $html = array('message' => $e->getMessage(), 'url' => '/promotion/admin/list'); } $this->getLayout()->setHtml(Zend_Json::encode($html)); }