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()); }
/** * 購入商品詳細情報を設定する. * * @param Order $Order */ protected function renderOrderDetailData(Order $Order) { $arrOrder = array(); // テーブルの微調整を行うための購入商品詳細情報をarrayに変換する // ========================================= // 受注詳細情報 // ========================================= $i = 0; /* @var OrderDetail $OrderDetail */ foreach ($Order->getOrderDetails() as $OrderDetail) { // class categoryの生成 $classCategory = ''; if ($OrderDetail->getClassCategoryName1()) { $classCategory .= ' [ ' . $OrderDetail->getClassCategoryName1(); if ($OrderDetail->getClassCategoryName2() == '') { $classCategory .= ' ]'; } else { $classCategory .= ' * ' . $OrderDetail->getClassCategoryName2() . ' ]'; } } // 税 $tax = $this->app['eccube.service.tax_rule']->calcTax($OrderDetail->getPrice(), $OrderDetail->getTaxRate(), $OrderDetail->getTaxRule()); $OrderDetail->setPriceIncTax($OrderDetail->getPrice() + $tax); // product $arrOrder[$i][0] = sprintf('%s / %s / %s', $OrderDetail->getProductName(), $OrderDetail->getProductCode(), $classCategory); // 購入数量 $arrOrder[$i][1] = number_format($OrderDetail->getQuantity()); // 税込金額(単価) $arrOrder[$i][2] = number_format($OrderDetail->getPriceIncTax()) . self::MONETARY_UNIT; // 小計(商品毎) $arrOrder[$i][3] = number_format($OrderDetail->getTotalPrice()) . self::MONETARY_UNIT; ++$i; } // ========================================= // 小計 // ========================================= $arrOrder[$i][0] = ''; $arrOrder[$i][1] = ''; $arrOrder[$i][2] = ''; $arrOrder[$i][3] = ''; ++$i; $arrOrder[$i][0] = ''; $arrOrder[$i][1] = ''; $arrOrder[$i][2] = '商品合計'; $arrOrder[$i][3] = number_format($Order->getSubtotal()) . self::MONETARY_UNIT; ++$i; $arrOrder[$i][0] = ''; $arrOrder[$i][1] = ''; $arrOrder[$i][2] = '送料'; $arrOrder[$i][3] = number_format($Order->getDeliveryFeeTotal()) . self::MONETARY_UNIT; ++$i; $arrOrder[$i][0] = ''; $arrOrder[$i][1] = ''; $arrOrder[$i][2] = '手数料'; $arrOrder[$i][3] = number_format($Order->getCharge()) . self::MONETARY_UNIT; ++$i; $arrOrder[$i][0] = ''; $arrOrder[$i][1] = ''; $arrOrder[$i][2] = '値引き'; $arrOrder[$i][3] = '- ' . number_format($Order->getDiscount()) . self::MONETARY_UNIT; ++$i; $arrOrder[$i][0] = ''; $arrOrder[$i][1] = ''; $arrOrder[$i][2] = '請求金額'; $arrOrder[$i][3] = number_format($Order->getPaymentTotal()) . self::MONETARY_UNIT; // PDFに設定する $this->setFancyTable($this->labelCell, $arrOrder, $this->widthCell); }
/** * クーポンコードが未入力または、クーポンコードを登録後に再度別のクーポンコードが設定された場合、 * 既存のクーポンを情報削除 * * @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); } }