バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 【2.11.4】お届け指定日について

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
ゲスト
投稿日時: 2011/12/27 12:26
対応状況: −−−
Re: 【2.11.4】お届け指定日について
「お届け『可能』日」を表示したいと理解し、
「ブロック」-「カレンダー」を流用し、
テストコードとして、なんとか、表示出来たと思います。。。


class SC_Helper_Purchase_Ex extends SC_Helper_Purchase {

    /**
     * お届け可能日のスタート値から, お届け日の配列を取得する.
     */
    function getDateArray($start_day, $end_day) {
        $masterData = new SC_DB_MasterData();
        $arrWDAY = $masterData->getMasterData("mtb_wday");
        
        // 休日取得
        $this->arrHoliday = $this->lfGetHoliday();
        // 定休日取得
        $this->arrRegularHoliday = $this->lfGetRegularHoliday();
                
        //お届け可能日のスタート値がセットされていれば
        if($start_day >= 1) {
            $now_time = time();
            $max_day = $start_day + $end_day;
            // 集計
&#160; &#160; &#160; &#160; &#160; &#160; for ($i = $start_day; $i < $max_day; $i++) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; // 基本時間から日数を追加していく
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $tmp_time = $now_time + ($i * 24 * 3600);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; list($y, $m, $d, $w) = explode(" ", date("Y m d w", $tmp_time));
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; // お届け日の昨日、、、
                $yesterday = mktime(0, 0, 0, $m, $d, $y) - 24 * 3600;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $year = date("Y", $yesterday);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $month = date("m", $yesterday);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $day = date("d", $yesterday);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160;
                // が、休日,定休日でない場合に、お届け日とする。
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; if(!$this->lfCheckHoliday(intval($year), intval($month), intval($day))){
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $val = sprintf("%04d/%02d/%02d(%s)", $y, $m, $d, $arrWDAY[$w]);
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; $arrDate[$val] = $val;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160;
&#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; } else {
&#160; &#160; &#160; &#160; &#160; &#160; $arrDate = false;
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; return $arrDate;
&#160; &#160; }

&#160; &#160; /**
&#160; &#160; &#160;* 休日取得.
&#160; &#160; &#160;*
&#160; &#160; &#160;* @return array $arrHoliday 休日情報の配列を返す
&#160; &#160; &#160;*/
&#160; &#160; function lfGetHoliday() {
&#160; &#160; &#160; &#160; $objQuery = SC_Query_Ex::getSingletonInstance();
&#160; &#160; &#160; &#160; $objQuery->setOrder('rank DESC');

&#160; &#160; &#160; &#160; $where = 'del_flg <> 1';
&#160; &#160; &#160; &#160; $arrRet = $objQuery->select('month, day', 'dtb_holiday', $where);
&#160; &#160; &#160; &#160; foreach ($arrRet AS $key=>$val) {
&#160; &#160; &#160; &#160; &#160; &#160; $arrHoliday[$val['month']][] = $val['day'];
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; return $arrHoliday;
&#160; &#160; }
&#160; &#160;&#160;
&#160; &#160; /**
&#160; &#160; &#160;* 定休日取得.
&#160; &#160; &#160;*
&#160; &#160; &#160;* @return array $arrRegularHoliday 定休日情報の配列を返す
&#160; &#160; &#160;*/
&#160; &#160; function lfGetRegularHoliday() {
&#160; &#160; &#160; &#160; $arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
&#160; &#160; &#160; &#160; $arrRegularHoliday = explode('|', $arrInfo['regular_holiday_ids']);
&#160; &#160; &#160; &#160; return $arrRegularHoliday;
&#160; &#160; }

&#160; &#160; /**
&#160; &#160; &#160;* 休日チェック取得.
&#160; &#160; &#160;*
&#160; &#160; &#160;* @param integer $year 年
&#160; &#160; &#160;* @param integer $month 月
&#160; &#160; &#160;* @param integer $day 日
&#160; &#160; &#160;* @return boolean 休日の場合trueを返す
&#160; &#160; &#160;*/
&#160; &#160; function lfCheckHoliday($year, $month, $day) {
&#160; &#160; &#160; &#160; if (!empty($this->arrHoliday[$month])) {
&#160; &#160; &#160; &#160; &#160; &#160; if (in_array($day, $this->arrHoliday[$month])) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; return true;
&#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; if (!empty($this->arrRegularHoliday)) {
&#160; &#160; &#160; &#160; &#160; &#160; $day = date('w', mktime(0,0,0 ,$month, $day, $year));
&#160; &#160; &#160; &#160; &#160; &#160; if (in_array($day, $this->arrRegularHoliday)) {
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; return true;
&#160; &#160; &#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; }
&#160; &#160; &#160; &#160; return false;
&#160; &#160; }

}

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


題名 投稿者 日時
   【2.11.4】お届け指定日について aska824 2011/12/17 9:08
     Re: 【2.11.4】お届け指定日について pingpong 2011/12/19 11:06
       Re: 【2.11.4】お届け指定日について aska824 2011/12/19 18:00
         Re: 【2.11.4】お届け指定日について aska824 2011/12/22 19:14
           Re: 【2.11.4】お届け指定日について ゲスト 2011/12/22 19:34
           » Re: 【2.11.4】お届け指定日について ゲスト 2011/12/27 12:26
           Re: 【2.11.4】お届け指定日について Masashige 2011/12/26 10:38
     Re: 【2.11.4】お届け指定日について imaoka 2012/1/15 0:06

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,873名です
総投稿数は110,000件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1295
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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