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

source: OpenPNE/branches/ebihara/prj_dev26_todo/webapp_biz/modules/biz/lib/mysql_functions.php @ 1051

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

Todo表示時、重要度による色分け表示とソート処理を行うようにした

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