/** * {@inheritDoc} */ public function processGet($request) { $data = array(); $data['currentAccount'] = $this->getUser(); $coupon = new Coupon(); $coupon->setCode($this->get('translator')->trans('THE_COUPON_CODE')); $data['currentCoupon'] = $coupon; return $this->findView(null, $data); }
/** * {@inheritDoc} */ public function processPost($request) { $gvReceiver = $this->getFormData($request); // back from confirmation to edit or not valid if (null != $request->request->get('edit')) { return $this->findView(); } $data = array(); $data['currentAccount'] = $this->getUser(); // to fake the email content display $coupon = new Coupon(); $coupon->setCode($this->get('translator')->trans('THE_COUPON_CODE')); $data['currentCoupon'] = $coupon; return $this->findView('success', $data); }
/** * Create new instance. */ public function __construct() { parent::__construct(123, 'abc123'); $this->setStartDate(time()); $this->setExpiryDate(time()); $this->setAmount(20.0); }
/** * Create a new coupon. * * @param int accountId The account id. * @param float amount The new amount. * @param string type The coupon type. * @return Coupon A <code>Coupon</code> instance or <code>null</code>. */ public function createCoupon($couponCode, $amount, $type) { $coupon = new Coupon(0, $couponCode, $type); $coupon->setAmount($amount); return \ZMRuntime::getDatabase()->createModel('coupons', $coupon); }
/** * Fix email context for various emails. */ public function onGenerateEmail($event) { $context = $event->getArgument('context'); $template = $event->getArgument('template'); $request = $event->getArgument('request'); $settingsService = $this->container->get('settingsService'); // set for all $language = $request->getSelectedLanguage(); $context['language'] = $language; $orderService = $this->container->get('orderService'); if (Runtime::isContextMatch('admin') && 'send_email_to_user' == $request->query->get('action')) { // gv mail if ($context['GV_REDEEM']) { if (1 == preg_match('/.*strong>(.*)<\\/strong.*/', $context['GV_REDEEM'], $matches)) { $couponCode = trim($matches[1]); $coupon = $this->container->get('couponService')->getCouponForCode($couponCode, $language->getId()); if (null == $coupon) { // coupon gets created only *after* the email is sent! $coupon = new Coupon(); $coupon->setCode($couponCode); $coupon->setType(Coupons::TYPPE_GV); $currency = $this->container->get('currencyService')->getCurrencyForCode($settingsService->get('defaultCurrency')); $coupon->setAmount($currency->parse($context['GV_AMOUNT'])); } $context['currentCoupon'] = $coupon; } $context['message'] = $request->request->get('message', ''); $context['htmlMessage'] = $request->request->get('message_html', ''); } } if ('checkout' == $template) { $order = $orderService->getOrderForId($context['INTRO_ORDER_NUMBER'], $language->getId()); $shippingAddress = $order->getShippingAddress(); $billingAddress = $order->getBillingAddress(); $paymentType = $order->getPaymentType(); $context['order'] = $order; $context['shippingAddress'] = $shippingAddress; $context['billingAddress'] = $billingAddress; $context['paymentType'] = $paymentType; } if ('order_status' == $template) { $newOrderStatus = $context['EMAIL_TEXT_NEW_STATUS']; preg_match('/[^:]*:(.*)/ms', $context['EMAIL_TEXT_STATUS_COMMENTS'], $matches); $comment = strip_tags(trim($matches[1])); $context['newOrderStatus'] = $newOrderStatus; $context['comment'] = $comment; // from zc_fixes if (null !== $request->query->get("oID") && 'update_order' == $request->query->get("action")) { $orderId = $request->query->get("oID"); $order = $orderService->getOrderForId($orderId, $language->getId()); $context['currentOrder'] = $order; $account = $this->container->get('accountService')->getAccountForId($order->getAccountId()); $context['currentAccount'] = $account; } } if ('gv_queue' == $template) { $queueId = $request->query->get('gid'); $couponQueue = $this->container->get('couponService')->getCouponQueueEntryForId($queueId); $context['couponQueue'] = $couponQueue; $account = $this->container->get('accountService')->getAccountForId($couponQueue->getAccountId()); $context['currentAccount'] = $account; $order = $orderService->getOrderForId($couponQueue->getOrderId(), $language->getId()); $context['currentOrder'] = $order; } if ('coupon' == $template) { $couponId = $request->query->get('cid'); $coupon = $this->container->get('couponService')->getCouponForId($couponId, $language->getId()); $context['currentCoupon'] = $coupon; $account = $this->container->get('accountService')->getAccountForId($context['accountId']); $context['currentAccount'] = $account; } if ('password_forgotten_admin' == $template) { $context['adminName'] = $context['EMAIL_CUSTOMERS_NAME']; $context['htmlMessage'] = $context['EMAIL_MESSAGE_HTML']; $context['textMessage'] = $context['text_msg']; } if ('product_notification' == $template) { $account = new \ZenMagick\StoreBundle\Entity\Account(); $account->setFirstName($context['EMAIL_FIRST_NAME']); $account->setLastName($context['EMAIL_LAST_NAME']); $context['currentAccount'] = $account; $context['message'] = $context['text_msg']; $context['htmlMessage'] = $context['EMAIL_MESSAGE_HTML']; } $event->setArgument('context', $context); }