ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE/trunk/webapp_biz/modules/biz/do/fhg_biz_schedule_add.php @ 365

Last change on this file since 365 was 365, checked in by takanashi, 14 years ago

PNEBIZバグフィックス #100,#101,#103,#105,#107,#176
登録済み携帯メールアドレスの削除

File size: 8.5 KB
Line 
1<?php
2/**
3 * @copyright 2005-2006 OpenPNE Project
4 * @license   http://www.php.net/license/3_01.txt PHP License 3.01
5 */
6
7class biz_do_fhg_biz_schedule_add extends OpenPNE_Action
8{
9    function execute($requests)
10    {
11        $u = $GLOBALS['AUTH']->uid();
12        $sessid = session_id();
13
14        //ERROR----------------
15        //存在しない日付
16        if (!checkdate($requests['sc_b_month'], $requests['sc_b_date'], $requests['sc_b_year'])) {
17            $msg = '存在しない日付が指定されました。';
18
19            $p = array('msg' => $msg, 'sc_title' => $requests['sc_title'], 'sc_rp' => $requests['sc_rp'],
20                'sc_memo' => $requests['sc_memo'], 'sc_j_mem_enc' => serialize($requests['sc_j_mem']),
21                'sc_rwk_enc' => serialize($requests['sc_rwk_enc']), 'sc_rcount' => $requests['sc_rcount']);
22            openpne_redirect('biz', 'page_fh_biz_schedule_add', $p);
23            exit();  //強制的にスクリプトを終了しなければいけない
24        }
25        //---------------------
26
27        //ERROR----------------
28        //タイトル未入力
29        if (empty($requests['sc_title'])) {
30            $msg = 'タイトルを入力してください。';
31            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
32            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
33            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
34            $url = $redirect_script.
35                        '&msg='.$msg.
36                        '&begin_date='.$begin_date.
37                        '&begin_time='.$begin_time.
38                        '&finish_time='.$finish_time.
39                        '&sc_rp='.$requests['sc_rp'].
40                        '&sc_memo='.$requests['sc_memo'].
41                        '&sc_j_mem_enc='.serialize($requests['sc_j_mem']).
42                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
43                        '&sc_rcount='.$requests['sc_rcount'];
44
45            $p = array('msg' => $msg, 'begin_date' => $begin_date, 'begin_time' => $begin_time,
46                'finish_time' => $finish_time, 'sc_rp' => $requests['sc_rp'], 'sc_memo' => $requests['sc_memo'],
47                'sc_j_mem_enc' => serialize($requests['sc_j_mem']), 'sc_rwk_enc' => serialize($requests['sc_rwk_enc']),
48                'sc_rcount' => $requests['sc_rcount']);
49            openpne_redirect('biz', 'page_fh_biz_schedule_add', $p);
50            exit();  //強制的にスクリプトを終了しなければいけない
51        }   
52        //---------------------
53
54        //ERROR----------------
55        //繰り返し予定::曜日指定なし
56        if ($requests['sc_rp'] && empty($requests['sc_rwk'])) {
57            $msg = '繰り返し予定を登録する場合は、曜日を指定してください。';
58            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
59            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
60            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
61
62            $p = array('msg' => $msg, 'begin_date' => $begin_date, 'begin_time' => $begin_time, 'sc_title' => $requests['sc_title'],
63                'finish_time' => $finish_time, 'sc_rp' => $requests['sc_rp'], 'sc_memo' => $requests['sc_memo'],
64                'sc_j_mem_enc' => serialize($requests['sc_j_mem']), 'sc_rwk_enc' => serialize($requests['sc_rwk_enc']),
65                'sc_rcount' => $requests['sc_rcount']);
66            openpne_redirect('biz', 'page_fh_biz_schedule_add', $p);
67            exit();  //強制的にスクリプトを終了しなければいけない
68        }
69        //--------------------
70
71        //施設、参加者のチェック
72        if (in_array('0', $requests['sc_j_mem'])) {
73            //「全員」が含まれている場合は、配列を空に
74            $requests['sc_j_mem'] = array();
75        }
76
77        if (!$requests['sc_j_plc']) {
78            $requests['sc_j_plc'] = 0;
79        }
80
81        if ($requests['sc_b_hour'] && !$requests['sc_b_minute']) {
82            $requests['sc_b_minute'] = '00';
83        }
84        if ($requests['sc_f_hour'] && !$requests['sc_f_minute']) {
85            $requests['sc_f_minute'] = '00';
86        }
87
88        //日付のフォーマットを設定
89        $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
90        $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
91        $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
92
93        //ERROR---------------
94        if ((strtotime($finish_time) < strtotime($begin_time)) && ($finish_time != ':')) {
95            //終了時間と開始時間が変
96            $msg = '終了時刻が開始時刻より先です。';
97            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
98            $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
99            $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
100            $url = $redirect_script.
101                        '&msg='.$msg.
102                        '&begin_date='.$begin_date.
103                        '&sc_title='.$requests['sc_title'].
104                        '&sc_rp='.$requests['sc_rp'].
105                        '&sc_memo='.$requests['sc_memo'].
106                        '&sc_j_mem_enc='.serialize($requests['sc_j_mem']).
107                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
108                        '&sc_rcount='.$requests['sc_rcount'];
109
110            $p = array('msg' => $msg, 'begin_date' => $begin_date, 'sc_rp' => $requests['sc_rp'],
111                'sc_memo' => $requests['sc_memo'], 'sc_j_mem_enc' => serialize($requests['sc_j_mem']),
112                'sc_rwk_enc' => serialize($requests['sc_rwk_enc']), 'sc_rcount' => $requests['sc_rcount']);
113            openpne_redirect('biz', 'page_fh_biz_schedule_add', $p);
114            exit();  //強制的にスクリプトを終了しなければいけない
115        }
116        //--------------------
117
118        if (!$requests['sc_rp'] && ($requests['sc_bn'] == 1)) {
119            //当日中に終わる予定は、開始日と終了日は同一でなければならない
120            $finish_date = $begin_date;
121        }
122
123        if (!($requests['sc_b_hour']||$requests['sc_b_minute']||$requests['sc_f_hour']||$requests['sc_f_minute'])) {
124            //時刻指定なし
125            $begin_time = $finish_time = null;
126        } elseif (!($requests['sc_f_hour']||$requests['sc_f_minute'])) {
127            $finish_time = null;
128        }
129
130        //繰り返し予定
131        if ($requests['sc_rp']) {
132            //終了日の決定
133            $finish_date = date("Y-m-d", strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+($requests['sc_rcount'])*7)));
134
135            //first_idの決定
136            $first_id = biz_getScheduleMax() + 1;
137            if (!$first_id) {
138                $first_id = 1;
139            }
140
141            //繰り返しルールの決定
142            foreach ($requests['sc_rwk'] as $value) {
143                $rp_rule += 1 << $value;
144            }
145        } else {
146            //繰り返しなし
147            $finish_date = date("Y-m-d", strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+($requests['sc_bn']-1))));
148        }
149
150        if (!$requests['sc_rp']) {
151            //繰り返しをしない予定登録
152            biz_insertSchedule($requests['sc_title'], $u, $begin_date, $finish_date, $begin_time, $finish_time, $requests['sc_memo'], $rp_rule, 0, $requests['sc_j_mem'], $requests['sc_j_plc']);
153        } else {
154            //繰り返し予定
155            $tmp = $begin_date;  //処理中の日付
156
157            for ($i=0; date("Ymd", strtotime($tmp)) < date("Ymd", strtotime($finish_date)); $i++) {
158                $nowday = strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+$i));
159                $tmp = date("Ymd", $nowday);
160                if ($rp_rule & (1 << date("w",$nowday))) {
161                    biz_insertSchedule($requests['sc_title'], $u, $tmp, $tmp, $begin_time, $finish_time, $requests['sc_memo'], $rp_rule, $first_id, $requests['sc_j_mem'], $requests['sc_j_plc']);
162                }
163            }
164        }
165
166        $week = date("W", abs(strtotime($begin_date) - strtotime(date("Y-m-d")))) - 1;
167
168        $p = array('w' => $week, 'msg' => '予定を追加しました。', 'id' => biz_getScheduleMax());
169        openpne_redirect('biz', 'page_fh_biz_schedule_view', $p);
170    }
171}
172
173?>
Note: See TracBrowser for help on using the repository browser.