setDeliveryFeeTotal() public method

Set delivery_fee_total
public setDeliveryFeeTotal ( string $deliveryFeeTotal ) : Order
$deliveryFeeTotal string
return Order
Exemplo n.º 1
0
 /**
  * 住所などの情報が変更された時に金額の再計算を行う
  */
 public function getAmount(\Eccube\Entity\Order $Order, \Eccube\Entity\Cart $Cart)
 {
     // 初期選択の配送業者をセット
     $shippings = $Order->getShippings();
     $delivery = $shippings[0]->getDelivery();
     $deliveryFee = $this->app['eccube.repository.delivery_fee']->findOneBy(array('Delivery' => $delivery, 'Pref' => $shippings[0]->getPref()));
     // 配送料金の設定
     $payment = $Order->getPayment();
     if (!is_null($payment)) {
         $Order->setPayment($payment);
         $Order->setPaymentMethod($payment->getMethod());
         $Order->setCharge($payment->getCharge());
     }
     $Order->setDeliveryFeeTotal($deliveryFee->getFee());
     $baseInfo = $this->app['eccube.repository.base_info']->get();
     // 配送料無料条件(合計金額)
     $deliveryFreeAmount = $baseInfo->getDeliveryFreeAmount();
     if (!is_null($deliveryFreeAmount)) {
         // 合計金額が設定金額以上であれば送料無料
         if ($Order->getSubTotal() >= $deliveryFreeAmount) {
             $Order->setDeliveryFeeTotal(0);
         }
     }
     // 配送料無料条件(合計数量)
     $deliveryFreeQuantity = $baseInfo->getDeliveryFreeQuantity();
     if (!is_null($deliveryFreeQuantity)) {
         // 合計数量が設定数量以上であれば送料無料
         if ($Cart->getTotalQuantity() >= $deliveryFreeQuantity) {
             $Order->setDeliveryFeeTotal(0);
         }
     }
     $total = $Order->getSubTotal() + $Order->getCharge() + $Order->getDeliveryFeeTotal();
     $Order->setTotal($total);
     $Order->setPaymentTotal($total);
     $this->app['orm.em']->flush();
     return $Order;
 }
Exemplo n.º 2
0
 /**
  * 配送料無料条件(合計金額)の条件を満たしていれば配送料金を0に設定
  *
  * @param Order $Order
  */
 public function setDeliveryFreeAmount(Order $Order)
 {
     // 配送料無料条件(合計金額)
     $deliveryFreeAmount = $this->BaseInfo->getDeliveryFreeAmount();
     if (!is_null($deliveryFreeAmount)) {
         // 合計金額が設定金額以上であれば送料無料
         if ($Order->getSubTotal() >= $deliveryFreeAmount) {
             $Order->setDeliveryFeeTotal(0);
             // お届け先情報の配送料も0にセット
             $shippings = $Order->getShippings();
             foreach ($shippings as $Shipping) {
                 $Shipping->setShippingDeliveryFee(0);
             }
         }
     }
 }
Exemplo n.º 3
0
 /**
  * 配送料の合計金額を計算
  *
  * @param Order $Order
  * @return Order
  */
 public function calculateDeliveryFee(Order $Order)
 {
     // 配送業者を取得
     $shippings = $Order->getShippings();
     // 配送料合計金額
     $Order->setDeliveryFeeTotal($this->getShippingDeliveryFeeTotal($shippings));
     // 配送料無料条件(合計金額)
     $this->setDeliveryFreeAmount($Order);
     // 配送料無料条件(合計数量)
     $this->setDeliveryFreeQuantity($Order);
     return $Order;
 }