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

source: OpenPNE/branches/ebihara/dev_2_6/webapp_biz/modules/biz/lib/mysql_functions.php @ 959

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

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

File size: 32.1 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
7//bizモジュール用 MySQL接続、操作用ライブラリ
8
9//予期しない多重定義を避けるため、必ず関数名にはbiz_というprefixをつける
10
11//GET---------------------------------------------
12
13//schedule_idの最大値を得る関数
14function biz_getScheduleMax()
15{
16    $sql = 'SELECT MAX(biz_schedule_id) FROM biz_schedule';
17    if ($count = db_get_one($sql, $params)) {
18        return $count;
19    } else {
20        return false;
21    }
22}
23
24//group_idの最大値を得る関数
25function biz_getGroupMax()
26{
27    $sql = 'SELECT MAX(biz_group_id) FROM biz_group';
28    if ($count = db_get_one($sql)) {
29        return $count;
30    } else {
31        return false;
32    }
33}
34
35//member_idの最大値を得る関数
36function biz_getMenberMax()
37{
38    $sql = 'SELECT MAX(c_member_id) FROM c_member';
39    if ($count = db_get_one($sql, $params)) {
40        return $count;
41    } else {
42        return false;
43    }
44}
45
46function biz_getShisetsuScheduleMax()
47{
48    $sql = 'SELECT MAX(biz_shisetsu_schedule_id) FROM biz_shisetsu_schedule';
49    if ($count = db_get_one($sql, $params)) {
50        return $count;
51    } else {
52        return false;
53    }
54}
55
56//指定された日付に存在する予定IDを得る関数
57function biz_getDateSchedule($y,$m,$d)
58{
59    $sql = 'SELECT biz_schedule_id FROM biz_schedule WHERE begin_date LIKE \''."$y-$m-$d%".'\' ORDER BY begin_time ASC ;';
60    return db_get_col($sql, $params);
61}
62
63//指定された予定IDの情報を得る関数
64function biz_getScheduleInfo($schedule_id)
65{
66    $sql = 'SELECT * FROM biz_schedule WHERE biz_schedule_id = ?';
67    $params = array(
68        intval($schedule_id),
69    );
70    return db_get_row($sql, $params);
71}
72
73function biz_getMemberNickname($c_member_id)
74{
75    $sql = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
76    $params = array(
77        intval($c_member_id),
78    );
79
80    return db_get_one($sql, $params);
81}
82
83//指定された予定と同じ繰り返しグループに属するすべての予定idを得る関数
84function biz_getRepeatScheduleID($schedule_id)
85{
86    $sql = 'SELECT rep_first FROM biz_schedule WHERE biz_schedule_id = ?';
87    $params = array(
88        intval($schedule_id),
89    );
90    $first_id = db_get_one($sql, $params);
91
92    $sql = 'SELECT biz_schedule_id FROM biz_schedule WHERE rep_first = ? ORDER BY begin_date';
93    $params = array(
94        intval($first_id),
95    );
96    $schedule = db_get_col($sql, $params);
97
98    return $schedule;
99}
100
101//指定された繰り返し予定IDの開始日を得る関数
102function biz_getRepeatBegin($schedule_id)
103{
104    $sql = 'SELECT rep_first FROM biz_schedule WHERE biz_schedule_id = ?';
105    $params = array(
106        intval($schedule_id),
107    );
108
109    $first_id = db_get_one($sql, $params);
110
111    $sql = 'SELECT begin_date FROM biz_schedule WHERE rep_first = ? ORDER BY begin_date';
112    $params = array(
113        intval($first_id),
114    );
115    $schedule = db_get_one($sql, $params);
116
117    return $schedule;
118}
119
120//指定された繰り返し予定IDの終了日を得る関数
121function biz_getRepeatFinish($schedule_id)
122{
123    $sql = 'SELECT rep_first FROM biz_schedule WHERE biz_schedule_id = ?';
124    $params = array(
125        intval($schedule_id),
126    );
127    $first_id = db_get_one($sql, $params);
128
129    $sql = 'SELECT begin_date FROM biz_schedule WHERE rep_first = ? ORDER BY begin_date DESC';
130    $params = array(
131        intval($first_id),
132    );
133    $schedule = db_get_one($sql, $params);
134
135    return $schedule;
136}
137
138//指定された予定に関する権限があるかどうかをチェックする関数
139function biz_isPermissionSchedule($u, $biz_schedule_id)
140{
141    $biz_schedule = biz_getScheduleInfo($biz_schedule_id);
142    $public_flag = $biz_schedule['public_flag'];
143    $biz_group_id = $biz_schedule['biz_group_id'];
144    $target_c_member_id = $biz_schedule['c_member_id'];
145
146    switch ($public_flag) {
147    case 'group' :  //グループのメンバーにのみ権限が与えられる予定
148        if (biz_isGroupMember($u, $biz_group_id)) {
149            return true;
150        } else {
151            return false;
152        }
153        break;
154    case 'private' :  //予定作成者にのみ権限が与えられる予定
155        if ($target_c_member_id == $u) {
156            return true;
157        } else {
158            return false;
159        }
160        break;
161    default :  //すべてのユーザに権限が与えられる予定
162        return true;
163    }
164}
165
166//指定された日付に存在する特定ユーザの予定idのみを得る関数
167function biz_getDateMemberSchedule($y, $m, $d, $target_c_member_id, $u)
168{
169    $schedule = array();
170    $contain = array();
171
172    $tmp = biz_getDateSchedule($y, $m, $d);
173    $sc_list = array();
174   
175    $biz_group_id_list = array();
176    foreach(biz_getJoinGroup($target_c_member_id) as $value) {
177        $biz_group_id_list[] = $value['biz_group_id'];
178    }
179
180    foreach ($tmp as $biz_schedule_id) {
181        $biz_schedule = biz_getScheduleInfo($biz_schedule_id);
182
183        if (biz_isPermissionSchedule($u, $biz_schedule_id)) {
184                if ($biz_schedule['c_member_id'] == $target_c_member_id) {
185                    $contain[] = $biz_schedule_id;
186                } elseif(in_array($biz_schedule['biz_group_id'], $biz_group_id_list) && ($value['public_flag'] != 'private')) {
187                    $contain[] = $biz_schedule_id;
188                }
189        }
190    }
191
192    $tmp = array_unique($tmp);
193
194    foreach ($contain as $key => $value) {
195        if (!is_null($value)) {
196           
197            //そのidの予定を得る
198            $sql = 'SELECT * FROM biz_schedule WHERE biz_schedule_id = ?';
199            $params = array(
200                $value,
201            );
202            $schedule += array($key => db_get_row($sql, $params));
203        }
204    }
205    return $schedule;
206}
207
208//指定された予定idの保持するユーザidを得る関数
209function biz_getJoinIdSchedule($id)
210{
211    $sql = 'SELECT c_member_id FROM biz_schedule_member WHERE biz_schedule_id = ?';
212    $params = array(
213        intval($id),
214    );
215
216    $ids = db_get_col($sql, $params);
217
218    return $ids;
219}
220
221//指定されたユーザidと関連付いた未読予定idを得たうえに、予定のデータまでつけてしまう関数
222function biz_getJoinIdNewSchedule($id)
223{
224    $sql = 'SELECT biz_schedule_id FROM biz_schedule_member WHERE c_member_id = ? AND is_read = 0;';
225    $params = array(
226        intval($id),
227    );
228
229    $ids = db_get_col($sql, $param);
230
231    $schedule = array();
232
233    foreach ($ids as $value) {
234        $sql = 'SELECT * FROM biz_schedule WHERE biz_schedule_id = ?';
235        $params = array($value);
236        $schedule[] = db_get_row($sql, $params);
237    }
238
239    return $schedule;
240}
241
242//指定された予定IDを保持しているユーザ名を得る関数
243function biz_getJoinMemberSchedule($id)
244{
245    $sql = 'SELECT c_member_id FROM biz_schedule_member WHERE biz_schedule_id = ?';
246    $params = array(
247        intval($id),
248    );
249
250    $tmp = db_get_col($sql, $params);
251    $members = array();
252
253    foreach ($tmp as $value) {
254        $sql = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
255        $params = array(
256            $value,
257        );
258
259        $members[$value] = db_get_one($sql, $params);
260    }
261
262    return $members;
263}
264
265//指定された予定IDを保持している施設名を得る関数
266function biz_getJoinShisetsuSchedule($id)
267{
268    $sql = 'SELECT * FROM biz_schedule_shisetsu WHERE biz_schedule_id = ?';
269    $params = array(
270        intval($id),
271    );
272    $tmp = db_get_all($sql, $params);
273    $shisetsu = array();
274
275    if (!is_array($tmp)) {
276        $tmp = array();
277    }
278
279    foreach ($tmp as $key=> $value) {
280        $sql = 'SELECT name FROM biz_shisetsu WHERE biz_shisetsu_id = ?';
281        $params = array(
282            intval($value['shisetsu_id']),
283        );
284        $shisetsu += array($key => db_get_one($sql, $params));
285    }
286
287    return $shisetsu;
288}
289
290function biz_getJoinShisetsuScheduleID($id)
291{
292    $sql = 'SELECT biz_shisetsu_id FROM biz_shisetsu_schedule WHERE biz_shisetsu_schedule_id = ?';
293
294    $params = array(
295        intval($id),
296    );
297
298    return db_get_one($sql, $params);
299}
300
301//指定メンバーidが加入しているグループ数を得る関数
302function biz_getGroupCount($id)
303{
304    $sql = 'SELECT * FROM biz_group_member WHERE c_member_id = ?';
305
306    $params = array(
307        intval($id),
308    );
309
310
311    return count(db_get_col($sql, $params));
312}
313
314//指定グループidのメンバーを得る関数
315function biz_getGroupMember($id, $limit=null, $start=null)
316{
317    $params = array(
318        intval($id),
319    );
320
321    $sql = 'SELECT * FROM biz_group_member WHERE biz_group_id = ? ';
322
323    if ($start) {
324        $sql .= 'AND c_member_id <= ? ';
325        $params[] = $start;
326    }
327
328    $sql .= 'ORDER BY c_member_id';
329
330    if ($limit) {
331        $list = db_get_all_limit($sql, 0, $limit, $params);
332    } else {
333        $list = db_get_all($sql, $params);
334    }
335
336    return $list;
337}
338
339//指定されたグループidの情報を得る関数
340function biz_getGroupData($id)
341{
342    $sql = "SELECT * FROM biz_group WHERE biz_group_id = ?";
343    $params = array(
344        intval($id),
345    );
346    if (!$group = db_get_row($sql, $params))
347        return array();
348
349    return $group;
350}
351
352//指定メンバーidが加入しているグループの情報を得る関数
353function biz_getJoinGroup($id, $limit = null)
354{
355    $list = array();
356    $sql = "SELECT * FROM biz_group_member";
357    $sql .= " WHERE c_member_id = ?";
358    $sql .= " ORDER BY RAND()";
359
360    $params = array(
361        intval($id),
362    );
363
364    if (!is_null($limit)) {
365        $list = db_get_all_limit($sql, 0, intval($limit), $params);
366    } else {
367        $list = db_get_all($sql, $params);
368    }
369
370    foreach ($list as $key => $value) {
371        $list[$key] += biz_getGroupData($value['biz_group_id']);
372        $list[$key]['count'] = count(biz_getGroupMember($value['biz_group_id']));
373    }
374
375    return $list;
376}
377
378//指定メンバーがグループに所属しているかどうかを返す関数
379function biz_isGroupMember($member_id, $group_id)
380{
381    $sql = 'SELECT * FROM biz_group_member WHERE c_member_id = ? AND biz_group_id = ?';
382    $params = array(
383        intval($member_id),
384        intval($group_id),
385    );
386
387    return db_get_one($sql, $params);
388}
389
390//指定された条件に見合うグループのリストを得る関数
391function biz_getGroupList($keyword='', $start=0, $num=20, $order='biz_group_id')
392{
393
394    //keywordあり
395    if ($keyword) {
396        $sql = 'SELECT * FROM biz_group WHERE 1 AND (info LIKE ? OR name LIKE ?) ORDER BY ?';
397
398        $params = array(
399            '%'.$keyword.'%',
400            '%'.$keyword.'%',
401            $order,
402        );
403        $list = db_get_all_limit($sql, $start, ($start + $num), $params);
404    //keywordなし(全件表示)
405    } else {
406        $sql = 'SELECT * FROM biz_group ORDER BY ?';
407
408        $params = array(
409            $order,
410        );
411        $list = db_get_all_limit($sql, $start, ($start + $num), $params);
412    }
413
414    if (!$list) {
415        return array();
416    }
417
418    foreach ($list as $key => $value) {
419        $count = count(biz_getGroupMember($value['biz_group_id']));
420        $list[$key]['count'] = $count;
421    }
422
423    return $list;
424}
425
426//指定日の施設予定を得る関数
427function biz_getShisetsuSchedule($y, $m, $d, $id=false)
428{
429    $params = array(
430        intval($y),
431        intval($m),
432        intval($d),
433    );
434
435    if ($id) {
436        $params[] = intval($id);
437        $sql = 'SELECT * FROM `biz_shisetsu_schedule` WHERE `date` = "?-?-?" AND biz_shisetsu_id = ? ORDER BY begin_time ASC';
438    } else {
439        $sql = 'SELECT * FROM `biz_shisetsu_schedule` WHERE `date` = "?-?-?" ORDER BY begin_time ASC';
440    }
441    $list = db_get_all($sql, $params);
442    foreach ($list as $key => $value) {
443        $params = array(
444            intval($list[$key]['c_member_id']),
445        );
446        $sql = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
447        $list[$key]['c_member_name'] = db_get_one($sql, $params);
448    }
449
450    return $list;
451}
452
453//施設施設予定の情報を得る関数
454function biz_getShisetsuScheduleID($id)
455{
456    $sql = 'SELECT * FROM `biz_shisetsu_schedule` WHERE biz_shisetsu_schedule_id = ?';
457
458    $params = array(
459        intval($id),
460    );
461
462    $list = db_get_row($sql, $params);
463
464    $sql = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
465    $params = array(
466        intval($list['c_member_id']),
467    );
468    $list['member_name'] = db_get_one($sql, $params);
469
470    return $list;
471}
472
473//施設のリストを得る関数
474function biz_getShisetsuList()
475{
476    $sql = 'SELECT * FROM biz_shisetsu';
477    $list = db_get_all($sql, $params);
478
479    return $list;
480}
481
482//指定施設の情報を得る関数
483function biz_getShisetsuData($shisetsu_id)
484{
485    $sql = 'SELECT * FROM biz_shisetsu WHERE biz_shisetsu_id = ?';
486
487    $params = array(
488        intval($shisetsu_id),
489    );
490
491    $list = db_get_row($sql, $params);
492
493    return $list;
494}
495
496//バッティングしているかどうかを判定する関数
497function biz_isBatting($shisetsu_id, $y, $m, $d, $begin_time, $finish_time)
498{
499    $list = biz_getShisetsuSchedule($y, $m, $d, $shisetsu_id);
500
501    if (empty($list)) {
502        //初めての予定登録
503        return true;
504    }
505
506    $result = false;
507
508    foreach ($list as $value) {   
509        //日付を演算できる値に変換
510        $b_begin = strtotime($value['begin_time']);
511        $b_finish = strtotime($value['finish_time']);
512        $t_begin = strtotime($begin_time);
513        $t_finish = strtotime($finish_time);
514
515        //OKパターンの判別
516        if ($t_begin >= $b_finish) {
517            //登録される予定開始が、既存予定終了以下である
518            $result = true;
519        } elseif ($t_finish <= $b_begin) {
520            //登録される予定終了が、既存予定開始以下である
521            $result = true;
522        } else {
523            //OKパターンに当てはまらない予定である
524            return false;
525        }
526    }
527
528    return $result;
529}
530
531//その月のバナー予定を得る関数
532function biz_getBannerScheduleList($y, $m, $id)
533{
534    $schedule = array();
535    $contain = array();
536
537    $sql = 'SELECT biz_schedule_id FROM biz_schedule WHERE 1 AND (begin_date LIKE \''.$y.'-'.$m.'%\' OR finish_date LIKE \''.$y.'-'.$m.'%\') AND begin_date != finish_date';
538    $tmp = db_get_row($sql, $params);
539
540    if (!$tmp) {
541        return false;
542    }
543
544    foreach ($tmp as $value) {
545        $members = biz_getJoinIdSchedule($value);
546        if (in_array($id, $members)) {
547            $contain[] = $value;
548        }
549    }
550
551    $tmp = array_unique($tmp);
552
553    foreach ($contain as $key => $value) {
554        if (!is_null($value)) {
555            $sql = 'SELECT * FROM biz_schedule WHERE biz_schedule_id = ?'; //そのidの予定を得る
556            $params = array(intval($value));
557            $schedule += array($key => db_get_row($sql, $params));
558        }
559    }
560    return $schedule;
561}
562//その日付がバナー予定のなかに含まれているかどうか
563function biz_isBannerSchedule($y, $m, $d, $id)
564{
565    $month_banner = biz_getBannerScheduleList($y, $m, $id);
566
567    $schedule = array();
568
569    $testing = mktime(0, 0, 0, $m, $d, $y);
570
571    if (!empty($month_banner)) {
572        foreach ($month_banner as $value) {
573            $begin_date = strtotime($value['begin_date'].' 00:00:00');
574            $finish_date = strtotime($value['finish_date'].' 00:00:00');
575
576            if (($begin_date < $testing) && ($finish_date > $testing)) {
577                $schedule += biz_getScheduleInfo($value['biz_schedule_id']);
578            }
579        }
580    }
581
582    return $schedule;
583}
584
585//指定メンバーのTodoを得る
586function biz_getMemberTodo($id, $cat = null)
587{
588    $sql = 'SELECT * FROM biz_todo WHERE c_member_id = ? AND is_check = ? ORDER BY biz_todo_id DESC;';  //メンバーが保有しているtodoid一覧
589    $params = array(
590        intval($id),
591        intval($cat),
592    );
593
594    $membertodo = db_get_all($sql, $params);
595
596    $sql = 'SELECT * FROM biz_todo WHERE c_member_id = 0 AND is_check = ? ORDER BY biz_todo_id DESC;';  //共有Todo
597    $params = array(
598        intval($cat),
599    );
600    $sharetodo = db_get_all($sql, $params);
601
602    $list = array_merge($membertodo , $sharetodo);  //各Todoの連結処理
603
604    foreach ($list as $key => $value) {
605        $sql = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
606        $params = array(
607            ($list[$key]['writer_id']),
608        );
609        $list[$key]['writer_name'] = db_get_one($sql, $params);
610    }
611
612    return $list;
613}
614
615//指定idのTodoを得る
616function biz_getTodo($id)
617{
618    //メンバーが保有しているtodoid一覧
619    $sql = 'SELECT * FROM biz_todo WHERE biz_todo_id = ?';
620
621    $params = array(
622        intval($id),
623    );
624
625    return db_get_row($sql, $params);
626}
627
628//自分が投稿したTodoの一覧を得る
629function biz_getPostedTodo($id, $limit = null)
630{
631
632    $sql = 'SELECT * FROM biz_todo WHERE writer_id = ? ORDER BY r_datetime DESC';
633    $params = array(
634        intval($id),
635    );
636
637    if ($limit) {
638        $list = db_get_all_limit($sql, 0, intval($limit), $params);
639    } else {
640        $list = db_get_all($sql, $params);
641    }
642
643    foreach ($list as $key => $value) {
644        $sql = 'SELECT nickname FROM c_member WHERE c_member_id = ?';
645        $params = array(
646            intval($list[$key]['c_member_id']),
647        );
648        $list[$key]['member_name'] = db_get_one($sql, $params);
649    }
650
651    return $list;
652}
653
654//指定メンバーのstateを得る
655function biz_getState($member_id)
656{
657    $sql = 'SELECT * FROM biz_state WHERE c_member_id = ?';
658    $params = array(
659        intval($member_id),
660    );
661
662
663    return db_get_row($sql, $params);
664}
665
666// 参加グループリスト
667function biz_getJoinGroupList($c_member_id, $page, $page_size)
668{
669    $start = ($page - 1) * $page_size;
670
671    $sql = "SELECT biz_group.*" .
672            " FROM biz_group_member , biz_group";
673    $sql .= " WHERE biz_group_member.c_member_id = ?";
674    $sql .= " AND biz_group.biz_group_id=biz_group_member.biz_group_id";
675    $sql .= " ORDER BY biz_group.biz_group_id DESC ";
676
677    $params = array(
678        intval($c_member_id),
679    );
680
681    $biz_group_list = db_get_all_limit($sql, $start, $page_size, $params);
682
683    foreach ($biz_group_list as $key => $value) {
684        $biz_group_list[$key]['count_members'] =
685           count(biz_getGroupMember($value['biz_group_id']));
686    }
687
688    $pager = array(
689        "total_num" => biz_getGroupCount($c_member_id),
690        "disp_num"  => count($biz_group_list),
691        "start_num" => 0,
692        "end_num"   => 0,
693        "total_page" => 0,
694        "prev_page" => 0,
695        "next_page" => 0,
696    );
697
698    if ($pager['disp_num'] > 0) {
699        $pager['start_num'] = $start + 1;
700        $pager['end_num'] = $pager['start_num'] + $pager['disp_num'] - 1;
701    }
702
703    if ($pager['total_num']) { 
704        $pager['total_page'] = ceil($pager['total_num'] / $page_size);
705
706        if ($page < $pager['total_page']) {
707            $pager['next_page'] = max($page + 1, 1);
708        }
709        if ($page > 1) {
710            $pager['prev_page'] = min($page - 1, $pager['total_page']);
711        }
712    }
713
714    return array($biz_group_list, $pager);
715}
716
717
718//SET---------------------------------------------
719
720//スケジュール登録
721function biz_insertSchedule($title, $member_id, $begin_date, $finish_date, $begin_time = null, $finish_time = null,
722                                                        $value = '', $rep_type, $first_id = 0,
723                                                        $biz_group_id = 0, $public_flag = "public")
724{
725    //登録値のセット、チェック
726    if (!$value) {
727        $value = '';
728    }
729
730    if (!$rep_type) {
731        $rep_type = 0;
732    }
733
734    //biz_scheduleにデータを追加する
735    $data = array(
736        'title' => $title,
737        'c_member_id' => intval($member_id),
738        'begin_date' => $begin_date,
739        'finish_date' => $finish_date,
740        'begin_time' => $begin_time,
741        'finish_time' => $finish_time,
742        'value' => $value,
743        'rep_type' => $rep_type,
744        'rep_first' => $first_id,
745        'biz_group_id' => $biz_group_id,
746        'public_flag' => $public_flag,
747    );
748    db_insert('biz_schedule', $data);
749}
750
751//スケジュール削除
752function biz_deleteSchedule($id, $group = false)
753{
754    if ($group) {
755        $sql = 'SELECT first_id FROM biz_schedule WHERE biz_schedule_id = ?';
756        $params = array(intval($id));
757        $firstid = db_get_one($sql, $params);
758
759        $sql = 'SELECT biz_schedule_id FROM biz_schedule WHERE first_id = ?';
760        $params = array(intval($firstid));
761        $schedules = db_get_col($sql, $params);
762
763        $sql = 'DELETE FROM biz_schedule WHERE first_id = ?';
764        $params = array(intval($firstid));
765        db_query($sql, $params);
766
767        foreach ($schedules as $nowid) {
768            $sql = 'DELETE FROM biz_schedule_member WHERE biz_schedule_id = ?';
769            $params = array(intval($nowid));
770            db_query($sql, $params);
771        }
772    } else {
773        $sql = 'DELETE FROM biz_schedule WHERE biz_schedule_id = ?';
774        $params = array(
775            intval($id),
776        );
777        db_query($sql, $params);
778        $sql = 'DELETE FROM biz_schedule_member WHERE biz_schedule_id = ?';
779        $params = array(
780            intval($id),
781        );
782        db_query($sql, $params);
783    }
784}
785
786//スケジュール編集
787function biz_editSchedule($title, $member_id, $begin_date, $finish_date, $begin_time = null, $finish_time = null,
788                                                    $value = '', $rep_type, $first_id = 0,
789                                                    $biz_group_id = 0, $public_flag = "public",
790                                                    $id)
791{
792    $sql = 'UPDATE `biz_schedule` SET `title` = ?,`c_member_id` = ?,`begin_date` = ?,`finish_date` = ?,`begin_time` = ?,`finish_time` = ?,`value` = ?,`rep_type` = ?,`rep_first` = ?, `biz_group_id` = ?, `public_flag` = ?, `is_read` = 0 WHERE `biz_schedule_id` = ?';
793    $params = array(
794        $title,
795        $member_id,
796        $begin_date,
797        $finish_date,
798        $begin_time,
799        $finish_time,
800        $value,
801        $rep_type,
802        $first_id,
803        $biz_group_id,
804        $public_flag,
805        $id,
806    );
807    db_query($sql, $params);
808}
809
810//スケジュールを既読済みに
811function biz_readSchedule($member_id, $schedule_id)
812{
813    $sql = 'SELECT biz_schedule_member_id FROM biz_schedule_member WHERE biz_schedule_id = ? AND c_member_id = ?';
814    $params = array(
815        intval($schedule_id),
816        intval($member_id),
817    );
818    $sid = db_get_one($sql, $params);
819
820    $sql = 'UPDATE `biz_schedule_member` SET `is_read` = \'1\' WHERE `biz_schedule_member_id` = ?';
821    $params = array(
822        intval($sid),
823    );
824    db_query($sql, $params);
825}
826
827//グループ登録
828function biz_insertGroup($name, $member_id, $info, $image_name, $members = array())
829{   
830    //登録値のセット、チェック
831    if (!$image_name) {
832        $image_name = 0;
833    }
834    if (!$info) {
835        $info = "";
836    }
837    if (empty($members)) {
838        $members = array($member_id);
839    }
840
841    //biz_groupにデータを追加する
842    $data = array(
843        'name' => $name,
844        'info' => $info,
845        'admin_id' => intval($member_id),
846        'image_filename' => $image_name,
847    );
848    $new_group_id = db_insert('biz_group', $data);
849
850    foreach ($members as $key => $value) {
851        $data = array(
852            'c_member_id' => $value,
853            'biz_group_id' => $new_group_id,
854        );
855        db_insert('biz_group_member', $data);
856    }
857}
858
859function biz_editGroup($biz_group_id, $name, $member_id, $info, $image_name, $members = array())
860{
861    //登録値のセット、チェック
862    if (!$image_name) {
863        $image_name = 0;
864    }
865
866    if (!$info) {
867        $info = "";
868    }
869
870    if (empty($members)) {
871        $members = array($member_id);
872    }
873
874    //biz_groupにデータを追加する
875
876    $sql = 'UPDATE `biz_group` SET `name` = ?,`info` = ?,`image_filename` = ? WHERE `biz_group_id` = ?';
877    $params = array(
878        $name,
879        $info,
880        $image_name,
881        intval($biz_group_id),
882    );
883    db_query($sql, $params);
884
885    $sql = 'DELETE FROM biz_group_member WHERE biz_group_id = ?';
886    $params = array(
887        intval($biz_group_id),
888    );
889    $result = db_query($sql, $params);
890
891    foreach ($members as $key => $value) {
892        $data = array(
893            'c_member_id' => $value,
894            'biz_group_id' => intval($biz_group_id),
895        );
896        db_insert('biz_group_member', $data);
897    }
898}
899
900//グループの削除
901function biz_deleteGroup($group_id)
902{
903    $sql = 'DELETE FROM biz_group_member WHERE biz_group_id = ?';
904    $params = array(
905        intval($group_id),
906    );
907    $result = db_query($sql, $params);
908    $sql = 'DELETE FROM biz_group WHERE biz_group_id = ?';
909    $params = array(
910        intval($group_id),
911    );    $result = db_query($sql, $params);
912}
913
914//グループに参加
915function biz_joinGroup($member_id, $group_id)
916{
917    $data = array(
918        'c_member_id' => intval($member_id),
919        'biz_group_id' => intval($group_id),
920    );
921    db_insert('biz_group_member', $data);
922}
923
924//施設追加
925function biz_addShisetsu($name, $image_name, $info = '')
926{
927    if (!$image_name) {
928        $image_name = '0';
929    }
930
931    $data = array(
932        'name' => $name,
933        'image_filename' => $image_name,
934        'info' => $info,
935    );
936    db_insert('biz_shisetsu', $data);
937}
938
939//施設編集
940function biz_editShisetsu($id, $name, $image_name, $info = '')
941{
942    if (!$image_name) {
943        $image_name = 0;
944    }
945
946    $sql = 'UPDATE `biz_shisetsu` SET `name` = ?,`image_filename` = ?, `info` = ? WHERE `biz_shisetsu_id` = ?';
947    $params = array(
948        $name,
949        $image_name,
950        $info,
951        intval($id),
952    );
953    db_query($sql, $params);
954}
955
956//施設予定追加
957function biz_addShisetsuSchedule($shisetsu_id, $member_id, $date, $begin_time, $finish_time)
958{
959    $data = array(
960        'c_member_id' => intval($member_id),
961        'biz_shisetsu_id' => intval($shisetsu_id),
962        'date' => $date,
963        'begin_time' => $begin_time,
964        'finish_time' => $finish_time,
965    );
966    $insert_id = db_insert('biz_shisetsu_schedule', $data);
967
968    $data = array(
969        'shisetsu_id' => intval($shisetsu_id),
970        'schedule_id' => intval($insert_id),
971    );
972    db_insert('biz_schedule_shisetsu', $data);
973}
974
975//施設予定削除
976function biz_deleteShisetsuSchedule($shisetsu_id)
977{
978    $sql = 'DELETE FROM `biz_shisetsu_schedule` WHERE biz_shisetsu_schedule_id = ?';
979    $params = array(
980        intval($shisetsu_id),
981    );
982
983    db_query($sql, $params);
984
985    return $sql;
986}
987
988//Todo登録
989function biz_insertTodo($member_id, $memo, $writer_id, $sort_order, $is_all)
990{
991    if ($is_all) {
992        //共有Todo
993        $member_id = 0;
994    } elseif ($member_id == $writer_id) {
995        $writer_name = '';
996    }
997
998    $data = array(
999        'c_member_id' => $member_id,
1000        'memo' => $memo,
1001        'is_check' => 0,
1002        'writer_id' => $writer_id,
1003        'sort_order' => $sort_order,
1004        'r_datetime' => date("Y-m-d H:i"),
1005    );
1006    return db_insert('biz_todo', $data);
1007}
1008
1009//Todo登録
1010function biz_editTodo($member_id, $memo, $writer_id, $sort_order, $is_all, $target)
1011{
1012    if ($is_all) {
1013        //共有Todo
1014        $member_id = 0;
1015    } elseif ($member_id == $writer_id) {
1016        $writer_name = '';
1017    }
1018
1019    $sql = 'UPDATE `biz_todo` SET `c_member_id` = ?, `memo` = ?, `writer_id` = ?, `r_datetime` = ? WHERE `biz_todo_id` = ?';
1020
1021    $params = array(
1022        intval($member_id),
1023        $memo,
1024        intval($writer_id),
1025        date("Y-m-d H:i"),
1026        $target,
1027    );
1028
1029    $result = db_query($sql, $params);
1030
1031    return $result;
1032}
1033
1034//Todo削除
1035function biz_deleteTodo($delid)
1036{
1037    //指定されたTodoを削除
1038    $sql = 'DELETE FROM biz_todo WHERE biz_todo_id = ?';
1039
1040    $params = array(
1041        intval($delid),
1042    );
1043
1044    $result = db_query($sql, $params);
1045
1046    return $result;
1047}
1048
1049//Todoにチェック
1050function biz_checkTodo($chid, $is_check)
1051{
1052    if ($is_check) {
1053    //チェックを解除する
1054        $sql = 'UPDATE `biz_todo` SET `is_check` = \'0\' WHERE `biz_todo_id` = ?';
1055    } else {
1056    //チェックをつける
1057        $sql = 'UPDATE `biz_todo` SET `is_check` = \'1\' WHERE `biz_todo_id` = ?';
1058    }
1059
1060    $params = array(
1061        intval($chid),
1062    );
1063
1064    $result = db_query($sql, $params);
1065}
1066
1067//画像をDBに格納する
1068function biz_saveImage($upfile, $filename)
1069{
1070    if (!$upfile) {
1071        return false;
1072    }
1073    if (!$filename) {
1074        return false;
1075    }
1076
1077    if (!t_check_image($upfile)) {
1078        return false;
1079    }
1080
1081    $image = t_check_image($upfile);
1082    $filepath = $upfile["tmp_name"];
1083
1084    $path_parts = pathinfo($upfile["name"]);
1085    $ext = $path_parts["extension"];
1086    $ext = strtolower($ext);
1087    $filename = $filename."_".time().".".$ext;
1088
1089    $fp = fopen($filepath, "rb");
1090    $image_data = fread($fp, filesize($filepath));
1091    fclose($fp);
1092
1093    // 画像かどうかのチェック
1094    if (!@imagecreatefromstring($image_data)) return false;
1095
1096    $image_data = base64_encode($image_data);
1097    $sql = "INSERT INTO c_image (filename, bin, r_datetime, type)" .
1098        " VALUES (?, ?, NOW(), ?)";
1099
1100    $params = array(
1101        $filename,
1102        $image_data,
1103        $image['format'],
1104    );
1105    $result = db_query($sql, $params);;
1106
1107    return $filename;
1108}
1109
1110function biz_deleteImage($filename)
1111{
1112    if (!$filename) {
1113        return false;
1114    }
1115
1116    $sql = 'DELETE FROM c_image WHERE filename = ?';
1117    $params = array(
1118        $filename,
1119    );
1120    db_query($sql, $params);
1121
1122    // cacheの削除
1123    image_cache_delete($filename);
1124}
1125
1126function biz_deleteGroupImage($id, $filename)
1127{
1128    $sql = 'UPDATE `biz_group` SET `image_filename` = \'0\' WHERE `biz_group_id` = ?';
1129    $params = array(
1130        intval($id),
1131    );
1132    db_query($sql, $params);
1133    biz_deleteImage($filename);
1134}
1135
1136function biz_deleteShisetsuImage($id, $filename)
1137{
1138    $sql = 'UPDATE `biz_shisetsu` SET `image_filename` = \'0\' WHERE `biz_shisetsu_id` = ?';
1139
1140    $params = array(
1141        intval($id),
1142    );
1143
1144    db_query($sql, $params);
1145    biz_deleteImage($filename);
1146}
1147
1148function biz_insertState($member_id, $state)
1149{
1150    $data = array(
1151        'member_id' => intval($member_id),
1152        'state' => $state,
1153    );
1154    return db_insert('biz_state', $data);
1155}
1156
1157function biz_changeState($member_id, $new)
1158{
1159    $state = biz_getState($member_id);
1160
1161    if (!$state) {
1162        //新規作成
1163        $result = biz_insertState($member_id, $new);
1164    } else {
1165        $sql = 'UPDATE `biz_state` SET `state` = ? WHERE `member_id` = ?';
1166        $params = array($new, intval($member_id));
1167        $result = db_query($sql, $params);
1168    }
1169
1170    return $result;
1171}
1172
1173function biz_changeNickname($member_id, $new)
1174{
1175    $sql = 'UPDATE `c_member` SET `nickname` = ? WHERE `c_member_id` = ?';
1176    $params = array(
1177        $new,
1178        intval($member_id),
1179    );
1180    $result = db_query($sql, $params);
1181
1182    return $result;
1183}
1184
1185//施設情報削除
1186//一緒に施設画像も削除
1187function biz_deleteShisetsu($id)
1188{
1189
1190    $shisetsu = biz_getShisetsuData($id);
1191
1192    //画像削除
1193    biz_deleteShisetsuImage($id, $shisetsu['image_filename']);
1194
1195    $sql = 'DELETE FROM `biz_shisetsu` WHERE biz_shisetsu_id = ?';
1196    $params = array(
1197        intval($id),
1198    );
1199
1200    db_query($sql, $params);
1201}
1202
1203//-------------------------------
1204//admin
1205
1206function biz_getConfig()
1207{
1208    $sql = "SELECT name, value FROM biz_admin_config";
1209    return db_get_assoc($sql);
1210}
1211
1212
1213function ktai_biz_openpne_redirect($module, $action = '', $params = array())
1214{
1215    if ($module == 'ktai_biz') {
1216        if (session_id()) {
1217            $params['ksid'] = session_id();
1218        }
1219    }
1220    $url = openpne_gen_url($module, $action, $params);
1221    client_redirect_absolute($url);
1222}
1223
1224//------------------------------
1225//mail
1226
1227/**
1228 * スケジュール通知メールを送信する
1229 */
1230function biz_do_common_send_schedule_mail()
1231{
1232    $y = date("Y");
1233    $m = date("m");
1234    $d = date("d");
1235    $c_schedule_list = biz_getDateSchedule($y, $m, $d);
1236
1237    $send_list = array();
1238    foreach ($c_schedule_list as $schedule_id) {
1239        $value = biz_getScheduleInfo($schedule_id);
1240        $c_member_id = $value['c_member_id'];
1241        $send_list[$c_member_id][] = $value;
1242    }
1243
1244    foreach ($send_list as $key => $value) {
1245        $c_member_secure = db_common_c_member_secure4c_member_id($key);
1246        $pc_address = $c_member_secure['pc_address'];
1247
1248        $params = array(
1249            "c_member" => db_common_c_member4c_member_id_LIGHT($key),
1250            "c_schedule_list" => $value,
1251        );
1252        var_dump($pc_address, $params);
1253        fetch_send_mail($pc_address, 'm_pc_schedule_mail', $params);
1254    }
1255}
1256?>
Note: See TracBrowser for help on using the repository browser.