バージョン選択

フォーラム

メニュー

オンライン状況

90 人のユーザが現在オンラインです。 (65 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 90
もっと...

サイト内検索

質問 > フロント機能 > 注文ページのお届け日・またお届け日時の制限

フロント機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
Ringo
投稿日時: 2019/3/8 8:27
対応状況: −−−
常連
登録日: 2018/8/10
居住地:
投稿: 70
Re: 注文ページのお届け日・またお届け日時の制限
前提:配送種別は組み込んでいません。

PostgreSQL

-- Table: mtb_closedate

-- DROP TABLE mtb_closedate;

CREATE TABLE mtb_closedate
(
  id smallint NOT NULL,
  name text,
  rank integer NOT NULL,
  CONSTRAINT mtb_closedate_pkey PRIMARY KEY (id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE mtb_closedate
  OWNER TO postgres;

eccube-3.0.17/src/Eccube/Entity/Master/Closedate.php
(Pref.phpをコピー)

class Closedate extends \Eccube\Entity\AbstractEntity

eccube-3.0.17/src/Eccube/Repository/Master/ClosedateRepository.php
(PrefRepository.phpをコピー)

class ClosedateRepository extends EntityRepository

eccube-3.0.17/src/Eccube/Resource/doctrine/master/Eccube.Entity.Master.Closedate.dcm.yml
(Eccube.Entity.Master.Pref.dcm.ymlをコピー)

Eccube\Entity\Master\Closedate:

    type: entity
    table: mtb_closedate
    repositoryClass: Eccube\Repository\Master\ClosedateRepository
    

eccube-3.0.17/src/Eccube/ServiceProvider/EccubeServiceProvider.php

        $app['eccube.repository.master.pref'] = $app->share(function () use ($app) {
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Pref');
        });
        $app['eccube.repository.master.closedate'] = $app->share(function () use ($app) {
            return $app['orm.em']->getRepository('Eccube\Entity\Master\Closedate');
        });

eccube-3.0.17/vendor/composer/autoload_classmap.php

    'Eccube\\Entity\\Master\\Pref' => $baseDir . '/src/Eccube/Entity/Master/Pref.php',
    'Eccube\\Entity\\Master\\Closedate' => $baseDir . '/src/Eccube/Entity/Master/Closedate.php', (上の「Pref」をコピー)

eccube-3.0.17/vendor/composer/autoload_static.php

        'Eccube\\Entity\\Master\\Pref' => __DIR__ . '/../..' . '/src/Eccube/Entity/Master/Pref.php',
        'Eccube\\Entity\\Master\\Closedate' => __DIR__ . '/../..' . '/src/Eccube/Entity/Master/Closedate.php', (上の「Pref」をコピー)

eccube-3.0.17/src/Eccube/Service/ShoppingService.php

use Eccube\Entity\Master\DeviceType;
use Eccube\Entity\Master\Closedate;


    /**
     * お届け日を取得
     *
     * @param Order $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')
            );
            
            // 追加
            $closedates = $this->app['eccube.repository.master.closedate']
                ->findAll();
            
            foreach ($period as $day) {
                // 追加
                $open = true;
                foreach ($closedates as $closedate) {
                    if (strcmp($day->format('Y/m/d'),$closedate) == 0) {
                        $open = false;
                    }
                }
                if ($open) {
                    $deliveryDates[$day->format('Y/m/d')] = $day->format('Y/m/d');
                }
            }
        }

        return $deliveryDates;

    }


フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   注文ページのお届け日・またお届け日時の制限 ateshi 2019/2/28 18:56
     Re: 注文ページのお届け日・またお届け日時の制限 468 2019/3/1 8:46
       Re: 注文ページのお届け日・またお届け日時の制限 ateshi 2019/3/5 11:25
         Re: 注文ページのお届け日・またお届け日時の制限 umebius 2019/3/5 11:33
           Re: 注文ページのお届け日・またお届け日時の制限 ateshi 2019/3/5 15:36
             Re: 注文ページのお届け日・またお届け日時の制限 Ringo 2019/3/7 17:45
             » Re: 注文ページのお届け日・またお届け日時の制限 Ringo 2019/3/8 8:27

 



ログイン


EC-CUBEペイメント

ec-cube.co

統計情報

総メンバー数は49,241名です
総投稿数は93,139件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1964
4
468
1818
5
yuh
1601
6
red
1342
7
umebius
1296
8
fukap
907
9
h_tanaka
905
10
tsuji
856
11
shutta
835
12 ramrun 789
13
tao_s
758
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.