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

Set payment_method
public setPaymentMethod ( string $paymentMethod ) : Order
$paymentMethod string
Результат Order
Пример #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;
 }
Пример #2
0
 /**
  * フォームからの入直内容に基づいて、受注情報の再計算を行う
  *
  * @param $app
  * @param $Order
  */
 protected function calculate($app, \Eccube\Entity\Order $Order)
 {
     $taxtotal = 0;
     $subtotal = 0;
     // 受注明細データの税・小計を再計算
     /** @var $OrderDetails \Eccube\Entity\OrderDetail[] */
     $OrderDetails = $Order->getOrderDetails();
     foreach ($OrderDetails as $OrderDetail) {
         // 新規登録の場合は, 入力されたproduct_id/produc_class_idから明細にセットする.
         // todo 別メソッドに切り出す
         if (!$OrderDetail->getId()) {
             $TaxRule = $app['eccube.repository.tax_rule']->getByRule($OrderDetail->getProduct(), $OrderDetail->getProductClass());
             $OrderDetail->setTaxRule($TaxRule->getCalcRule()->getId());
             $OrderDetail->setProductName($OrderDetail->getProduct()->getName());
             $OrderDetail->setProductCode($OrderDetail->getProductClass()->getCode());
             $OrderDetail->setClassName1($OrderDetail->getProductClass()->hasClassCategory1() ? $OrderDetail->getProductClass()->getClassCategory1()->getClassName()->getName() : null);
             $OrderDetail->setClassName2($OrderDetail->getProductClass()->hasClassCategory2() ? $OrderDetail->getProductClass()->getClassCategory2()->getClassName()->getName() : null);
             $OrderDetail->setClassCategoryName1($OrderDetail->getProductClass()->hasClassCategory1() ? $OrderDetail->getProductClass()->getClassCategory1()->getName() : null);
             $OrderDetail->setClassCategoryName2($OrderDetail->getProductClass()->hasClassCategory2() ? $OrderDetail->getProductClass()->getClassCategory2()->getName() : null);
         }
         // 税
         $tax = $app['eccube.service.tax_rule']->calcTax($OrderDetail->getPrice(), $OrderDetail->getTaxRate(), $OrderDetail->getTaxRule());
         $OrderDetail->setPriceIncTax($OrderDetail->getPrice() + $tax);
         $taxtotal += $tax;
         // 小計
         $subtotal += $OrderDetail->getTotalPrice();
     }
     // 受注データの税・小計・合計を再計算
     $Order->setTax($taxtotal);
     $Order->setSubtotal($subtotal);
     $Order->setTotal($subtotal + $Order->getCharge() + $Order->getDeliveryFeeTotal() - $Order->getDiscount());
     // お支払い合計は、totalと同一金額(2系ではtotal - point)
     $Order->setPaymentTotal($Order->getTotal());
     // お支払い方法の更新
     $Order->setPaymentMethod($Order->getPayment()->getMethod());
     // お届け先の更新
     $Shippings = $Order->getShippings();
     foreach ($Shippings as $Shipping) {
         $Shipping->setShippingDeliveryName($Shipping->getDelivery()->getName());
         $Shipping->setShippingDeliveryTime($Shipping->getDeliveryTime()->getDeliveryTime());
     }
 }