Пример #1
0
 /**
  * クーポン受注情報を保存する
  * @param unknown $Order
  * @param unknown $Coupon
  */
 public function saveCouponOrder($Order, $Coupon, $couponCd)
 {
     if (is_null($Order)) {
         return;
     }
     $repository = $this->app['eccube.plugin.coupon.repository.coupon_order'];
     // クーポン受注情報を取得する
     $CouponOrder = $repository->findOneBy(array('pre_order_id' => $Order->getPreOrderId()));
     if (is_null($CouponOrder)) {
         // 未登録の場合
         $CouponOrder = new \Plugin\Coupon\Entity\CouponCouponOrder();
         $CouponOrder->setOrderId($Order->getId());
         $CouponOrder->setPreOrderId($Order->getPreOrderId());
         $CouponOrder->setDelFlg(Constant::DISABLED);
         $CouponOrder->setCreateDate(new \DateTime());
     }
     // 更新対象データ
     if (is_null($Coupon) || (is_null($couponCd) || strlen($couponCd) == 0)) {
         // クーポンがない または クーポンコードが空の場合
         $CouponOrder->setCouponCd($couponCd);
         $CouponOrder->setCouponId(null);
     } else {
         // クーポン情報があるが、対象商品がない場合はクーポンIDにnullを設定する。
         // そうでない場合はクーポンIDを設定する
         if ($this->existsCouponProduct($Coupon, $Order)) {
             $CouponOrder->setCouponId($Coupon->getId());
         } else {
             $CouponOrder->setCouponId(null);
         }
         $CouponOrder->setCouponCd($Coupon->getCouponCd());
     }
     $CouponOrder->setUpdateDate(new \DateTime());
     $repository->save($CouponOrder);
 }
Пример #2
0
 /**
  * クーポン受注情報を保存する
  *
  * @param Order $Order
  * @param CouponCoupon $Coupon
  * @param $couponCd
  * @param Customer $Customer
  * @param $discount
  */
 public function saveCouponOrder(Order $Order, CouponCoupon $Coupon, $couponCd, Customer $Customer, $discount)
 {
     if (is_null($Order)) {
         return;
     }
     $repository = $this->app['eccube.plugin.coupon.repository.coupon_order'];
     // クーポン受注情報を取得する
     $CouponOrder = $repository->findOneBy(array('pre_order_id' => $Order->getPreOrderId()));
     if (is_null($CouponOrder)) {
         // 未登録の場合
         $CouponOrder = new \Plugin\Coupon\Entity\CouponCouponOrder();
         $CouponOrder->setOrderId($Order->getId());
         $CouponOrder->setPreOrderId($Order->getPreOrderId());
         $CouponOrder->setDelFlg(Constant::DISABLED);
     }
     // 更新対象データ
     if (is_null($Coupon) || (is_null($couponCd) || strlen($couponCd) == 0)) {
         // クーポンがない または クーポンコードが空の場合
         $CouponOrder->setCouponCd($couponCd);
         $CouponOrder->setCouponId(null);
     } else {
         // クーポン情報があるが、対象商品がない場合はクーポンIDにnullを設定する。
         // そうでない場合はクーポンIDを設定する
         if ($this->existsCouponProduct($Coupon, $Order)) {
             $CouponOrder->setCouponId($Coupon->getId());
         } else {
             $CouponOrder->setCouponId(null);
         }
         $CouponOrder->setCouponCd($Coupon->getCouponCd());
     }
     // ログイン済みの場合は, user_id取得
     if ($this->app->isGranted('ROLE_USER')) {
         $CouponOrder->setUserId($Customer->getId());
     } else {
         $CouponOrder->setEmail($Customer->getEmail());
     }
     // 割引金額をセット
     $CouponOrder->setDiscount($discount);
     $repository->save($CouponOrder);
 }