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

source: OpenPNE/trunk/webapp_biz/modules/biz/do/fh_biz_schedule_edit.php @ 276

Last change on this file since 276 was 276, checked in by ogawa, 14 years ago

remove extra spaces

File size: 8.6 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_fh_biz_schedule_edit extends OpenPNE_Action
8{
9    function execute($requests)
10    {
11
12        $u = $GLOBALS['AUTH']->uid();
13        $sessid = session_id();
14
15        //ERROR----------------
16        //存在しない日付
17        if(!checkdate($requests['sc_b_month'], $requests['sc_b_date'], $requests['sc_b_year']))
18        {
19            $redirect_script = '?m=biz&a=page_fh_biz_schedule_edit';
20            $msg = urlencode('存在しない日付が指定されました。');
21
22            $schedule = biz_getScheduleInfo($requests['schedule_id']);
23
24            $begin_date = $schedule['begin_date'];
25
26            //日付関連の引数は返さなくてもよい
27            $url = $redirect_script.
28                        '&msg='.$msg.
29                        '&begin_date='.$begin_date.
30                        '&title='.$requests['sc_title'].
31                        '&sc_rp='.$requests['sc_rp'].
32                        '&value='.$requests['sc_memo'].
33                        '&members='.serialize($requests['sc_j_mem']).
34                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
35                        '&sc_rcount='.$requests['sc_rcount'].
36                        '&schedule_id='.$requests['schedule_id'];
37
38            client_redirect_absolute($url);
39            exit();  //強制的にスクリプトを終了しなければいけない
40        }
41        //---------------------
42
43        //ERROR----------------
44        //タイトル未入力
45        if(empty($requests['sc_title']))
46        {
47            $redirect_script = '?m=biz&a=page_fh_biz_schedule_edit';
48            $msg = urlencode('タイトルを入力してください。');
49            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
50            $url = $redirect_script.
51                        '&msg='.$msg.
52                        '&begin_date='.$begin_date.
53                        '&sc_rp='.$requests['sc_rp'].
54                        '&sc_memo='.$requests['sc_memo'].
55                        '&members='.serialize($requests['sc_j_mem']).
56                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
57                        '&sc_rcount='.$requests['sc_rcount'].
58                        '&schedule_id='.$requests['schedule_id'];
59
60            client_redirect_absolute($url);
61            exit();  //強制的にスクリプトを終了しなければいけない
62        }   
63        //---------------------
64
65        //ERROR----------------
66        //繰り返し予定::曜日指定なし
67        if($requests['sc_rp'] && empty($requests['sc_rwk']))
68        {
69            $redirect_script = '?m=biz&a=page_fh_biz_schedule_edit';
70            $msg = urlencode('繰り返し予定を登録する場合は、曜日を指定してください。');
71            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
72            $url = $redirect_script.
73                        '&msg='.$msg.
74                        '&begin_date='.$begin_date.
75                        '&sc_title='.$requests['sc_title'].
76                        '&sc_rp='.$requests['sc_rp'].
77                        '&sc_memo='.$requests['sc_memo'].
78                        '&members='.serialize($requests['sc_j_mem']).
79                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
80                        '&sc_rcount='.$requests['sc_rcount'].
81                        '&schedule_id='.$requests['schedule_id'];
82
83            client_redirect_absolute($url);
84            exit();  //強制的にスクリプトを終了しなければいけない
85        }
86        //--------------------
87
88
89        //施設、参加者のチェック
90        if(in_array('0', $requests['sc_j_mem']))  //「全員」が含まれている場合は、配列を空に
91            $requests['sc_j_mem'] = array();
92
93        if(!$requests['sc_j_plc'])
94            $requests['sc_j_plc'] = 0;
95
96        if(($requests['sc_b_hour']&&!$requests['sc_b_minute']))
97            $requests['sc_b_minute'] = '00';
98        if(($requests['sc_f_hour']&&!$requests['sc_f_minute']))
99            $requests['sc_f_minute'] = '00';
100
101        //日付のフォーマットを設定
102        $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
103        $begin_time = $requests['sc_b_hour'].':'.$requests['sc_b_minute'];
104        $finish_time = $requests['sc_f_hour'].':'.$requests['sc_f_minute'];
105
106        //ERROR---------------
107        if((strtotime($finish_time) < strtotime($begin_time))&&($finish_time != ':'))  //終了時間と開始時間が変
108        {
109            $redirect_script = '?m=biz&a=page_fh_biz_schedule_edit';
110            $msg = urlencode('終了時刻が開始時刻より先です。');
111            $begin_date = $requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.$requests['sc_b_date'];
112            $url = $redirect_script.
113                        '&msg='.$msg.
114                        '&begin_date='.$begin_date.
115                        '&sc_title='.$requests['sc_title'].
116                        '&sc_rp='.$requests['sc_rp'].
117                        '&sc_memo='.$requests['sc_memo'].
118                        '&members='.serialize($requests['sc_j_mem']).
119                        '&sc_rwk_enc='.serialize($requests['sc_rwk_enc']).
120                        '&sc_rcount='.$requests['sc_rcount'].
121                        '&schedule_id='.$requests['schedule_id'];
122
123            client_redirect_absolute($url);
124            exit();  //強制的にスクリプトを終了しなければいけない
125        }
126        //--------------------
127
128        if(!($requests['sc_b_hour']||$requests['sc_b_minute']||$requests['sc_f_hour']||$requests['sc_f_minute']))  //時刻指定なし
129            $begin_time = $finish_time = null;
130        elseif(!($requests['sc_f_hour']||$requests['sc_f_minute']))
131            $finish_time = null;
132
133        if((!$requests['sc_rp'])&&($requests['sc_bn'] == 1))  //当日中に終わる予定は、開始日と終了日は同一でなければならない
134            $finish_date = $begin_date;
135
136        if($requests['sc_rp'])  //繰り返し予定
137        {
138            //終了日の決定
139            $finish_date = date("Y-m-d", strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+($requests['sc_rcount'])*7)));
140
141            //繰り返しルールの決定
142            foreach($requests['sc_rwk'] as $value)
143                $rp_rule += 1 << $value;
144        }
145
146        else  //繰り返しなし
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        $schedule_id = '';
150
151        if(!$requests['sc_rp'])  //繰り返しをしない予定登録
152        {
153            biz_editSchedule($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'], $requests['schedule_id']);
154            $schedule_id = $requests['schedule_id'];
155        }
156
157        else  //繰り返し予定
158        {
159            $tmp = $begin_date;  //処理中の日付
160
161            if($requests['iskeep'])  //繰り返し予定グループの維持(同予定から派生した繰り返し予定を一斉に編集)
162            {
163                $replist = biz_getRepeatScheduleID($requests['schedule_id']);
164                foreach($replist as $value)
165                    biz_deleteSchedule($value);  //既存の繰り返し予定をすべて削除(予定日数の追加、削除のケースがありうるため)
166            }
167
168            $first_id = biz_getScheduleMax() + 1;  //登録される予定のプライマリキー
169
170            for($i = 0; date("Ymd", strtotime($tmp)) < date("Ymd", strtotime($finish_date)); $i++)  //終了日に達するまで新規予定追加を繰り返す
171            {
172                $nowday = strtotime($requests['sc_b_year'].'-'.$requests['sc_b_month'].'-'.($requests['sc_b_date']+$i));
173                $tmp = date("Ymd", $nowday);
174
175                if($rp_rule & (1 << date("w", $nowday)))
176                    biz_insertSchedule($requests['sc_title'], $u, $tmp, $tmp, $begin_time, $finish_time, $requests['sc_memo'], $rp_rule, $first_id, $requests['sc_j_mem']);
177            }
178
179            $schedule_id = biz_getScheduleMax();
180        }
181        $week = date("W", abs(strtotime($begin_date)-strtotime(date("Y-m-d"))))-1;
182        client_redirect_absolute("?m=biz&a=page_fh_biz_schedule_view&w=$week&msg=".urlencode('予定を編集しました。')."&id=".$schedule_id);
183    }
184}
185
186?>
Note: See TracBrowser for help on using the repository browser.