setDiscount() публичный Метод

Set discount
public setDiscount ( string $discount ) : Order
$discount string
Результат Order
Пример #1
0
 /**
  * 受注情報を作成
  * @return \Eccube\Entity\Order
  */
 public function newOrder()
 {
     $Order = new \Eccube\Entity\Order();
     $Order->setDiscount(0)->setSubtotal(0)->setTotal(0)->setPaymentTotal(0)->setCharge(0)->setTax(0)->setOrderStatus($this->app['eccube.repository.order_status']->find($this->app['config']['order_processing']))->setDelFlg(Constant::DISABLED);
     return $Order;
 }
Пример #2
0
 /**
  * 合計金額がマイナスになっていた場合、値引き処理を元に戻す
  *
  * @param Order $Order
  */
 private function restoreDiscount(Order $Order)
 {
     // クーポンが未入力でクーポン情報が存在すればクーポン情報を削除
     $CouponOrder = $this->app['eccube.plugin.coupon.service.coupon']->getCouponOrder($Order->getPreOrderId());
     if ($CouponOrder) {
         $total = $Order->getSubtotal() + $Order->getCharge() + $Order->getDeliveryFeeTotal();
         // 合計金額
         $totalAmount = $total - $Order->getDiscount();
         if ($totalAmount < 0) {
             // 合計金額がマイナスのため、金額を値引き前に戻す
             $this->app['orm.em']->remove($CouponOrder);
             $this->app['orm.em']->flush($CouponOrder);
             $discount = $Order->getDiscount() - $CouponOrder->getDiscount();
             $Order->setDiscount($discount);
             $total = $total - $discount;
             $Order->setTotal($total);
             $Order->setPaymentTotal($total);
             $this->app['orm.em']->flush($Order);
             $this->app->addError($this->app->trans('front.plugin.coupon.shopping.use.minus'), 'front.request');
         }
     }
 }
Пример #3
0
 /**
  * 値引き金額をセット
  *
  * @param Order $Order
  * @param $discount
  */
 public function setDiscount(Order $Order, $discount)
 {
     $Order->setDiscount($Order->getDiscount() + $discount);
 }
Пример #4
0
 /**
  * クーポンコードが未入力または、クーポンコードを登録後に再度別のクーポンコードが設定された場合、
  * 既存のクーポンを情報削除
  *
  * @param Order $Order
  * @param Application $app
  */
 private function removeCouponOrder(Order $Order, Application $app)
 {
     // クーポンが未入力でクーポン情報が存在すればクーポン情報を削除
     $CouponOrder = $app['eccube.plugin.coupon.service.coupon']->getCouponOrder($Order->getPreOrderId());
     if ($CouponOrder) {
         $app['orm.em']->remove($CouponOrder);
         $app['orm.em']->flush($CouponOrder);
         $Order->setDiscount($Order->getDiscount() - $CouponOrder->getDiscount());
         $Order->setTotal($Order->getTotal() + $CouponOrder->getDiscount());
         $Order->setPaymentTotal($Order->getPaymentTotal() + $CouponOrder->getDiscount());
         $app['orm.em']->flush($Order);
     }
 }