/** * 複数配送用受注編集用フォーム作成. * * 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; }