Admin\Order\EditController の WebTest をする場合に汎用的に使用する.
Author: Kentaro Ohkouchi
Esempio n. 1
0
 public function setUp()
 {
     parent::setUp();
     $this->Customer = $this->createCustomer();
     $this->Product = $this->createProduct();
     $BaseInfo = $this->app['eccube.repository.base_info']->get();
     // 複数配送を無効に
     $BaseInfo->setOptionMultipleShipping(0);
     $this->app['orm.em']->flush($BaseInfo);
 }
 /**
  * 複数配送用受注編集用フォーム作成.
  *
  * createFormData() との違いは、 $Shipping[N]['ShipmentItems'] がフォームに追加されている.
  * OrderDetails は、 $Shippings[N]['ShipmentItems] から生成される.
  *
  * @param Customer $Customer
  * @param array $Shippings お届け先情報の配列
  * @return array
  */
 public function createFormDataForMultiple(Customer $Customer, array $Shippings)
 {
     $formData = parent::createFormData($Customer, null);
     $formData['Shippings'] = $Shippings;
     $OrderDetails = array();
     foreach ($Shippings as $Shipping) {
         foreach ($Shipping['ShipmentItems'] as $Item) {
             if (empty($OrderDetails[$Item['ProductClass']])) {
                 $OrderDetails[$Item['ProductClass']] = array('Product' => $Item['Product'], 'ProductClass' => $Item['ProductClass'], 'price' => $Item['price'], 'quantity' => $Item['quantity'], 'tax_rate' => 8);
             } else {
                 $OrderDetails[$Item['ProductClass']]['quantity'] += $Item['quantity'];
             }
         }
     }
     $formData['OrderDetails'] = array_values($OrderDetails);
     return $formData;
 }