-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathTasksAppModel.php
More file actions
162 lines (146 loc) · 3.9 KB
/
TasksAppModel.php
File metadata and controls
162 lines (146 loc) · 3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?php
/**
* TaskAppModel
*/
App::uses('AppModel', 'Model');
App::uses('TasksComponent', 'Tasks.Controller/Component');
App::uses('MailQueueBehavior', 'Mails.Model/Behavior');
/**
* Class TasksAppModel
*/
class TasksAppModel extends AppModel {
/**
* Validate datetime from to.
*
* @param array $check check fields.
* @param array $params parameters.
* @return bool
*/
public function validateIsDateCheck($check, $params) {
$valid = false;
$checkValue = array_values($check)[0];
if (! $checkValue) {
$valid = true;
}
if (isset($params['from']) && $params['from']) {
$valid = true;
}
if (isset($params['to']) && $params['to']) {
$valid = true;
}
return $valid;
}
/**
* Validate datetime from to.
*
* @param array $check check fields.
* @param array $params parameters.
* @return bool
*/
public function validateDatetimeFromTo($check, $params) {
$checkValue = array_values($check)[0];
$isCompareFrom = isset($params['from']);
if (! $isCompareFrom) {
return true;
}
$compareValue = $isCompareFrom ? $params['from'] : $params['to'];
if (($isCompareFrom && $checkValue >= $compareValue)
|| (! $isCompareFrom && $checkValue <= $compareValue)) {
return true;
}
return false;
}
/**
* Validate is set reminder check
*
* @param array $check check fields.
* @param array $params parameters.
* @return bool
*/
public function validateIsSetReminderCheck($check, $params) {
// is_enable_mailがFalseならそのままTrueを返す
if (! $params['is_enable_mail']) {
return true;
}
$checkValue = array_values($check)[0];
$valid = true;
if ($params['is_enable_mail'] === true && ! $params['to']) {
$valid = false;
}
// 実施期間終了日が現在日時より前の場合、リマインダーメールは破棄されてしまうためFalseを返す
$taskEndDate = date('Y-m-d H:i:s', strtotime($params['to'] . ' -1day +1 second'));
$sendTime = date(
'Y-m-d H:i:s', strtotime(
$taskEndDate . ' -' . $checkValue . 'day'
)
);
$now = date('Y-m-d H:i:s');
if ($now > $sendTime) {
$valid = false;
}
return $valid;
}
/**
* 登録されている実施日によりdate_colorを取得
*
* @param array $taskStartDate 実施開始日
* @param array $taskEndDate 実施終了日
*
* @return int
*/
public function getTaskDateColor($taskStartDate, $taskEndDate) {
$now = date('Ymd', strtotime(date('Y/m/d H:i:s')));
$deadLine = date('Ymd', strtotime('+2 day'));
$dateColor = TasksComponent::TASK_BEING_PERFORMED;
// 現在の日付が開始日より前
if (! empty($taskStartDate)
&& intval(date('Ymd', strtotime($taskStartDate))) > $now
) {
$dateColor = TasksComponent::TASK_START_DATE_BEFORE;
}
if (! empty($taskEndDate)) {
// 終了期限間近
if (intval(date('Ymd', strtotime($taskEndDate))) >= intval($now)
&& intval(date('Ymd', strtotime($taskEndDate))) <= intval($deadLine)
) {
$dateColor = TasksComponent::TASK_DEADLINE_CLOSE;
// 終了期限切れ
} elseif (intval(date('Ymd', strtotime($taskEndDate))) < intval($now)
) {
$dateColor = TasksComponent::TASK_BEYOND_THE_END_DATE;
}
}
return $dateColor;
}
/**
* date_colorにより期限間近か否か判定
*
* @param array $dateColor ToDoの実施期間判定色
*
* @return array
*/
public function isDeadLine($dateColor) {
if ($dateColor == TasksComponent::TASK_DEADLINE_CLOSE
|| $dateColor == TasksComponent::TASK_BEYOND_THE_END_DATE
) {
return true;
}
return false;
}
/**
* 通知メール及びリマインダーメールを作成する
*
* @param array $reminder リマインダーメール設定フラグ
* @param array $makeReminder リマインダーメール作成フラグ
* @return bool
*
* @throws InternalErrorException
*/
public function isReminder($reminder, $makeReminder) {
$isMakeReminder = false;
if ($reminder && ! $makeReminder) {
$isMakeReminder = true;
}
return $isMakeReminder;
}
}