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

source: OpenPNE/branches/ebihara/dev_2_6/webapp_biz/modules/biz/do/fh_biz_schedule_edit.php @ 959

Last change on this file since 959 was 959, checked in by ebihara, 14 years ago

スケジュール表示に権限を追加

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