Eccube\Service\ShoppingService::getFormDeliveryDates PHP Method

getFormDeliveryDates() public method

お届け日を取得
public getFormDeliveryDates ( Order $Order ) : array
$Order Eccube\Entity\Order
return array
    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;
    }