/**
  * {@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);
 }
Пример #2
0
 /**
  * {@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);
 }
Пример #3
0
 /**
  * Create new instance.
  */
 public function __construct()
 {
     parent::__construct(123, 'abc123');
     $this->setStartDate(time());
     $this->setExpiryDate(time());
     $this->setAmount(20.0);
 }
Пример #4
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);
 }
Пример #5
0
 /**
  * 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);
 }