/** * クーポン受注情報を保存する * @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); }
/** * クーポン受注情報を保存する * * @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); }