/** * @param $mailType * @param $mail * @param $name * @param $couponCode * @param $storeId */ public function saveMail($mailType, $mail, $name, $couponCode, $storeId) { if ($couponCode != '') { $coupon = $this->_coupon->loadByCode($couponCode); $rule = $this->_rule->load($coupon->getRuleId()); $couponAmount = $rule->getDiscountAmount(); switch ($rule->getSimpleAction()) { case 'cart_fixed': $couponType = 1; break; case 'by_percent': $couponType = 2; break; default: $couponType = 0; break; } } else { $couponType = 0; $couponAmount = 0; } $sent = $this->_mailsent; $date = $this->_dateTime; $sent->setMailType($mailType)->setStoreId($storeId)->setCustomerEmail($mail)->setCustomerName($name)->setCouponNumber($couponCode)->setCouponType($couponType)->setCouponAmount($couponAmount)->setSentAt($date->gmtDate())->save(); }
/** * Add coupon's rule name to order data * * @param EventObserver $observer * @return $this */ public function execute(EventObserver $observer) { $order = $observer->getOrder(); $couponCode = $order->getCouponCode(); if (empty($couponCode)) { return $this; } $this->_coupon->loadByCode($couponCode); $ruleId = $this->_coupon->getRuleId(); if (empty($ruleId)) { return $this; } /** @var \Magento\SalesRule\Model\Rule $rule */ $rule = $this->_ruleFactory->create()->load($ruleId); $order->setCouponRuleName($rule->getName()); return $this; }
/** * Run test loadByCode method */ public function testLoadByCode() { $this->eventManager->expects($this->any())->method('dispatch'); $this->resourceMock->expects($this->once())->method('load'); $this->assertEquals($this->couponModel, $this->couponModel->loadByCode('code-value')); }