public function getFormDeliveryDates(Order $Order)
{
// お届け日の設定
$minDate = 0;
$deliveryDateFlag = false;
// 配送時に最大となる商品日数を取得
foreach ($Order->getOrderDetails() as $detail) {
$deliveryDate = $detail->getProductClass()->getDeliveryDate();
if (!is_null($deliveryDate)) {
if ($deliveryDate->getValue() < 0) {
// 配送日数がマイナスの場合はお取り寄せなのでスキップする
$deliveryDateFlag = false;
break;
}
if ($minDate < $deliveryDate->getValue()) {
$minDate = $deliveryDate->getValue();
}
// 配送日数が設定されている
$deliveryDateFlag = true;
}
}
// 配達最大日数期間を設定
$deliveryDates = array();
// 配送日数が設定されている
if ($deliveryDateFlag) {
$period = new \DatePeriod(new \DateTime($minDate . ' day'), new \DateInterval('P1D'), new \DateTime($minDate + $this->app['config']['deliv_date_end_max'] . ' day'));
foreach ($period as $day) {
$deliveryDates[$day->format('Y/m/d')] = $day->format('Y/m/d');
}
}
return $deliveryDates;
}