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; }