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

Get total
public getTotal ( ) : string
Результат string
Пример #1
0
 public function testConstructor2()
 {
     $Order = new Order();
     $this->expected = 0;
     $this->actual = $Order->getDiscount();
     $this->verify();
     $this->actual = $Order->getSubTotal();
     $this->verify();
     $this->actual = $Order->getTotal();
     $this->verify();
     $this->actual = $Order->getPaymentTotal();
     $this->verify();
     $this->actual = $Order->getCharge();
     $this->verify();
     $this->actual = $Order->getTax();
     $this->verify();
     $this->actual = $Order->getDeliveryFeeTotal();
     $this->verify();
     $this->assertNull($Order->getOrderStatus());
     $this->assertSame(Constant::DISABLED, $Order->getDelFlg());
 }
Пример #2
0
 /**
  * 会員情報の更新
  *
  * @param Order $Order 受注情報
  * @param Customer $user ログインユーザ
  */
 public function setCustomerUpdate(Order $Order, Customer $user)
 {
     $orderDetails = $Order->getOrderDetails();
     // 顧客情報を更新
     $now = new \DateTime();
     $firstBuyDate = $user->getFirstBuyDate();
     if (empty($firstBuyDate)) {
         $user->setFirstBuyDate($now);
     }
     $user->setLastBuyDate($now);
     $user->setBuyTimes($user->getBuyTimes() + 1);
     $user->setBuyTotal($user->getBuyTotal() + $Order->getTotal());
 }
Пример #3
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から明細にセットする.
         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();
     }
     $shippings = $Order->getShippings();
     /** @var \Eccube\Entity\Shipping $Shipping */
     foreach ($shippings as $Shipping) {
         $shipmentItems = $Shipping->getShipmentItems();
         $Shipping->setDelFlg(Constant::DISABLED);
         /** @var \Eccube\Entity\ShipmentItem $ShipmentItem */
         if (!$Shipping->getId()) {
             foreach ($shipmentItems as $ShipmentItem) {
                 $ShipmentItem->setProductName($ShipmentItem->getProduct()->getName());
                 $ShipmentItem->setProductCode($ShipmentItem->getProductClass()->getCode());
                 $ShipmentItem->setClassName1($ShipmentItem->getProductClass()->hasClassCategory1() ? $ShipmentItem->getProductClass()->getClassCategory1()->getClassName()->getName() : null);
                 $ShipmentItem->setClassName2($ShipmentItem->getProductClass()->hasClassCategory2() ? $ShipmentItem->getProductClass()->getClassCategory2()->getClassName()->getName() : null);
                 $ShipmentItem->setClassCategoryName1($ShipmentItem->getProductClass()->hasClassCategory1() ? $ShipmentItem->getProductClass()->getClassCategory1()->getName() : null);
                 $ShipmentItem->setClassCategoryName2($ShipmentItem->getProductClass()->hasClassCategory2() ? $ShipmentItem->getProductClass()->getClassCategory2()->getName() : null);
             }
         }
     }
     // 受注データの税・小計・合計を再計算
     $Order->setTax($taxtotal);
     $Order->setSubtotal($subtotal);
     $Order->setTotal($subtotal + $Order->getCharge() + $Order->getDeliveryFeeTotal() - $Order->getDiscount());
     // お支払い合計は、totalと同一金額(2系ではtotal - point)
     $Order->setPaymentTotal($Order->getTotal());
 }
Пример #4
0
 /**
  * 値引き可能かチェック
  *
  * @param Order $Order
  * @param       $discount
  * @return bool
  */
 public function isDiscount(Order $Order, $discount)
 {
     if ($Order->getTotal() < $discount) {
         return false;
     }
     return true;
 }
Пример #5
0
 /**
  * ご注文内容のご確認画面のHTMLを取得し、関連項目を書き込む
  * お支払方法の下に下記の項目を追加する.(id=confirm_main )
  * ・クーポンコードボタン
  * 送料のの下に下記の項目を追加する.(class=total_box total_amountの上)
  * ・値引き表示
  *
  * @param Request $request
  * @param Response $response
  * @param Order $Order
  * @return mixed|string
  */
 private function getHtmlShopping(Request $request, Response $response, Order $Order)
 {
     // HTMLを取得し、DOM化
     $crawler = new Crawler($response->getContent());
     $html = $this->getHtml($crawler);
     try {
         // クーポンが未入力でクーポン情報が存在すればクーポン情報を削除
         $CouponOrder = $this->app['eccube.plugin.coupon.service.coupon']->getCouponOrder($Order->getPreOrderId());
         $parts = $this->app->renderView('Coupon/View/coupon_shopping_item.twig', array('CouponOrder' => $CouponOrder));
         // このタグを前後に分割し、間に項目を入れ込む
         $beforeHtml = $crawler->filter('#confirm_main')->last()->html();
         $pos = strrpos($beforeHtml, '<h2 class="heading02">');
         if ($pos !== false) {
             $oldHtml = substr($beforeHtml, 0, $pos);
             $afterHtml = substr($beforeHtml, $pos);
             $newHtml = $oldHtml . $parts . $afterHtml;
             $html = str_replace($beforeHtml, $newHtml, $html);
         }
         if (!version_compare('3.0.10', Constant::VERSION, '<=')) {
             // 値引き項目を表示
             if ($CouponOrder) {
                 $total = $Order->getTotal() - $CouponOrder->getDiscount();
                 $Order->setTotal($total);
                 $Order->setPaymentTotal($total);
                 // 合計、値引きを再計算し、dtb_orderを更新する
                 $this->app['orm.em']->flush($Order);
                 // このタグを前後に分割し、間に項目を入れ込む
                 // 元の合計金額は書き込み済みのため再度書き込みを行う
                 $parts = $this->app->renderView('Coupon/View/discount_shopping_item.twig', array('Order' => $Order));
                 $form = $crawler->filter('#confirm_side .total_box')->last()->html();
                 $pos = strrpos($form, '</dl>');
                 if ($pos !== false) {
                     $oldHtml = substr($form, 0, $pos);
                     $newHtml = $oldHtml . $parts;
                     $html = str_replace($form, $newHtml, $html);
                 }
             }
         }
     } catch (\InvalidArgumentException $e) {
         // no-op
     }
     return $html;
 }
Пример #6
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);
     }
 }