Rev 1215 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1215 | Rev 1217 | ||
|---|---|---|---|
| Line 53... | Line 53... | ||
| 53 | $founditem = $item; |
53 | $founditem = $item; |
| 54 | break; |
54 | break; |
| 55 | } |
55 | } |
| 56 | } |
56 | } |
| 57 | 57 | ||
| - | 58 | $bookingsOk = true; |
|
| - | 59 | ||
| - | 60 | $bookings = json_decode(getMeetingsRestOfDay($shortname)); |
|
| - | 61 | //print_array($bookings); |
|
| - | 62 | //echo $bookings; |
|
| - | 63 | if ($bookings->{'error'}) |
|
| - | 64 | { |
|
| - | 65 | $bookingsOk = false; |
|
| - | 66 | } |
|
| - | 67 | ||
| - | 68 | if ($bookings->{'meetings'}) |
|
| - | 69 | { |
|
| - | 70 | foreach ($bookings->{'meetings'} as $meeting) |
|
| - | 71 | { |
|
| - | 72 | $meetStart = strtotime($meeting->{'start'}); |
|
| - | 73 | $meetEnd = strtotime($meeting->{'end'}); |
|
| - | 74 | $start = strtotime($bookFrom); |
|
| - | 75 | $end = strtotime($bookTo); |
|
| - | 76 | //echo $meeting->{'start'}." "; |
|
| - | 77 | if (($start >= $meetStart && $start < $meetEnd) |
|
| - | 78 | || ($end > $meetStart && $end <= $meetEnd) |
|
| - | 79 | || ($start <= $meetStart && $end >= $meetEnd)) |
|
| - | 80 | { |
|
| - | 81 | $bookingsOk = false; |
|
| - | 82 | break; |
|
| - | 83 | } |
|
| - | 84 | } |
|
| - | 85 | } |
|
| - | 86 | ||
| 58 | if ($founditem !== false) |
87 | if ($founditem !== false && $bookingsOk) |
| 59 | { |
88 | { |
| 60 | $CreateItem->SendMeetingInvitations = "SendToNone"; |
89 | $CreateItem->SendMeetingInvitations = "SendToNone"; |
| 61 | $CreateItem->SavedItemFolderId->DistinguishedFolderId->Id = "calendar"; |
90 | $CreateItem->SavedItemFolderId->DistinguishedFolderId->Id = "calendar"; |
| 62 | $CreateItem->Items->CalendarItem = array(); |
91 | $CreateItem->Items->CalendarItem = array(); |
| 63 | $CreateItem->Items->CalendarItem[0]->Subject = "Booking from panel"; |
92 | $CreateItem->Items->CalendarItem[0]->Subject = "Booking from panel"; |
| Line 94... | Line 123... | ||
| 94 | else |
123 | else |
| 95 | { |
124 | { |
| 96 | $returdata = "{ error:'No result',\nshortname:'".$shortname."'}\n"; |
125 | $returdata = "{ error:'No result',\nshortname:'".$shortname."'}\n"; |
| 97 | } |
126 | } |
| 98 | 127 | ||
| 99 | } |
128 | } |
| 100 | catch (SoapFault $exception) |
129 | catch (SoapFault $exception) |
| 101 | { |
130 | { |
| 102 | $returdata = "{ error:'".$exception."',\nshortname:'".$shortname."'}\n"; |
131 | $returdata = "{ error:'".$exception."',\nshortname:'".$shortname."'}\n"; |
| 103 | } |
132 | } |
| 104 | 133 | ||
| 105 | stream_wrapper_restore('https'); |
134 | stream_wrapper_restore('https'); |
| 106 | return $returndata; |
135 | return $returndata; |
| - | 136 | } |
|
| - | 137 | else if ($founditem === false) |
|
| - | 138 | { |
|
| - | 139 | return "{ error:'Unknown shortname',\nshortname:'".$shortname."'}\n"; |
|
| 107 | } |
140 | } |
| 108 | else |
141 | else |
| 109 | { |
142 | { |
| 110 | return "{ error: |
143 | return "{ error:'Double booking',\nshortname:'".$shortname."'}\n"; |
| 111 | } |
144 | } |
| 112 | } |
145 | } |
| 113 | 146 | ||
| 114 | 147 | ||
| 115 | /* |
148 | /* |
| Line 141... | Line 174... | ||
| 141 | stdClass Object |
174 | stdClass Object |
| 142 | ( |
175 | ( |
| 143 | [ResponseMessages] => stdClass Object |
176 | [ResponseMessages] => stdClass Object |
| 144 | ( |
177 | ( |
| 145 | [CreateItemResponseMessage] => stdClass Object |
178 | [CreateItemResponseMessage] => stdClass Object |
| 146 | ( |
179 | ( |
| 147 | [MessageText] => EndDate is earlier than StartDate |
180 | [MessageText] => EndDate is earlier than StartDate |
| 148 | [ResponseCode] => ErrorCalendarEndDateIsEarlierThanStartDate |
181 | [ResponseCode] => ErrorCalendarEndDateIsEarlierThanStartDate |
| 149 | [DescriptiveLinkKey] => 0 |
182 | [DescriptiveLinkKey] => 0 |
| 150 | [ResponseClass] => Error |
183 | [ResponseClass] => Error |
| 151 | [Items] => stdClass Object |
184 | [Items] => stdClass Object |
| Line 182... | Line 215... | ||
| 182 | $FindItem->Traversal = "Shallow"; |
215 | $FindItem->Traversal = "Shallow"; |
| 183 | $FindItem->ItemShape->BaseShape = "AllProperties"; |
216 | $FindItem->ItemShape->BaseShape = "AllProperties"; |
| 184 | $FindItem->ParentFolderIds->DistinguishedFolderId->Id = "calendar"; |
217 | $FindItem->ParentFolderIds->DistinguishedFolderId->Id = "calendar"; |
| 185 | /* Dont forget to use the proper timezone and setting for daylight saving time (php handles this fine) */ |
218 | /* Dont forget to use the proper timezone and setting for daylight saving time (php handles this fine) */ |
| 186 | $FindItem->CalendarView->StartDate = date("c"); //"2009-04-07T08:00:00Z"; |
219 | $FindItem->CalendarView->StartDate = date("c"); //"2009-04-07T08:00:00Z"; |
| 187 | $FindItem->CalendarView->EndDate = date("c", strtotime("+ |
220 | $FindItem->CalendarView->EndDate = date("c", strtotime("+12 hour")); //"2009-04-08T00:00:00Z"; |
| 188 | //echo date("c")." ".date("c", strtotime("+8 hour"))." ".date("c", strtotime("18:00"))."\n"; |
221 | //echo date("c")." ".date("c", strtotime("+8 hour"))." ".date("c", strtotime("18:00"))."\n"; |
| 189 | 222 | ||
| 190 | stream_wrapper_unregister('https'); |
223 | stream_wrapper_unregister('https'); |
| 191 | stream_wrapper_register('https', 'NTLMStream') or die("Failed to register protocol"); |
224 | stream_wrapper_register('https', 'NTLMStream') or die("Failed to register protocol"); |
| 192 | 225 | ||
| 193 | $returndata = "{ \n\tshortname |
226 | $returndata = "{ \n\t\"shortname\":\"".$shortname."\",\n\t\"meetings\":[\n"; |
| 194 | try |
227 | try |
| 195 | { |
228 | { |
| 196 | $client = new ExchangeNTLMSoapClient($wsdl); |
229 | $client = new ExchangeNTLMSoapClient($wsdl); |
| 197 | $client->user = $founditem->UserName; |
230 | $client->user = $founditem->UserName; |
| 198 | $client->pass = $founditem->Password; |
231 | $client->pass = $founditem->Password; |
| Line 211... | Line 244... | ||
| 211 | else |
244 | else |
| 212 | { |
245 | { |
| 213 | $item = $calendaritems; |
246 | $item = $calendaritems; |
| 214 | } |
247 | } |
| 215 | $returndata .= "\t\t{\n"; |
248 | $returndata .= "\t\t{\n"; |
| 216 | $returndata .= "\t\torganizer |
249 | $returndata .= "\t\t\"organizer\":\"".$item->Organizer->Mailbox->Name."\",\n"; |
| 217 | $returndata .= "\t\tsubject |
250 | $returndata .= "\t\t\"subject\":\"".$item->Subject."\",\n"; |
| 218 | $returndata .= "\t\t |
251 | $returndata .= "\t\t\"start\":\"".date("G:i", strtotime($item->Start))."\",\n"; |
| 219 | $returndata .= "\t\tend: |
252 | $returndata .= "\t\t\"end\":\"".date("G:i", strtotime($item->End))."\"\n"; |
| 220 | $returndata .= "\t\t}"; |
253 | $returndata .= "\t\t}"; |
| 221 | if ($i+1 < count($calendaritems)) |
254 | if ($i+1 < count($calendaritems)) |
| 222 | { |
255 | { |
| 223 | $returndata .= ",\n"; |
256 | $returndata .= ",\n"; |
| 224 | } |
257 | } |
| 225 | } |
258 | } |
| 226 | } |
259 | } |
| 227 | else |
260 | else |
| 228 | { |
261 | { |
| 229 |
|
262 | //return "{ \"error\":\"No result\",\n\"shortname\":\"".$shortname."\"}\n"; |
| 230 | } |
263 | } |
| 231 | } |
264 | } |
| 232 | catch (SoapFault $exception) |
265 | catch (SoapFault $exception) |
| 233 | { |
266 | { |
| 234 |
|
267 | //return "{ \"error\":\"".$exception."\",\n\"shortname\":\"".$shortname."\"}\n"; |
| 235 | } |
268 | } |
| 236 | 269 | ||
| 237 | stream_wrapper_restore('https'); |
270 | stream_wrapper_restore('https'); |
| 238 | $returndata .= "\n\t]\n}\n"; |
271 | $returndata .= "\n\t]\n}\n"; |
| 239 | return $returndata; |
272 | return $returndata; |
| 240 | } |
273 | } |
| 241 | else |
274 | else |
| 242 | { |
275 | { |
| 243 | return "{ error: |
276 | return "{ \"error\":\"Unknown shortname\",\n\"shortname\":\"".$shortname."\"}\n"; |
| 244 | } |
277 | } |
| 245 | } |
278 | } |
| 246 | 279 | ||
| 247 | 280 | ||
| 248 | function print_array($var) |
281 | function print_array($var) |