private function getCouponOrder(CouponCoupon $Coupon, $discount, $preOrderId) { $this->Customer = $this->createCustomer('*****@*****.**'); $Order = $this->createOrder($this->Customer); $Order->setPreOrderId($preOrderId); $details = $Coupon->getCouponDetails(); /** @var \Plugin\Coupon\Entity\CouponCouponDetail $CouponDetail */ $CouponDetail = $details[0]; $Product = $CouponDetail->getProduct(); $ProductClasses = $Product->getProductClasses(); $ProductClass = $ProductClasses[0]; $orderDetails = $Order->getOrderDetails(); foreach ($orderDetails as $OrderDetail) { $Order->removeOrderDetail($OrderDetail); } $OrderDetail = new OrderDetail(); $TaxRule = $this->app['eccube.repository.tax_rule']->getByRule(); // デフォルト課税規則 $OrderDetail->setProduct($Product)->setProductClass($ProductClass)->setProductName($Product->getName())->setProductCode($ProductClass->getCode())->setPrice($ProductClass->getPrice02())->setQuantity(1)->setTaxRule($TaxRule->getCalcRule()->getId())->setTaxRate($TaxRule->getTaxRate()); $this->app['orm.em']->persist($OrderDetail); $OrderDetail->setOrder($Order); $Order->addOrderDetail($OrderDetail); $CouponOrder = new CouponCouponOrder(); $CouponOrder->setDelFlg(Constant::DISABLED); $CouponOrder->setDiscount($discount); $CouponOrder->setUserId($this->Customer->getId()); $CouponOrder->setCouponId($Coupon->getId()); $CouponOrder->setOrderId($Order->getId()); $CouponOrder->setPreOrderId($Order->getPreOrderId()); $CouponOrder->setCouponCd($Coupon->getCouponCd()); return $CouponOrder; }