Subversion Repositories HomeAutomation

Rev

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:'Unknown shortname',\nshortname:'".$shortname."'}\n";
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("+9 hour")); //"2009-04-08T00:00:00Z";
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:'".$shortname."',\n\tmeetings:[\n";
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:'".$item->Organizer->Mailbox->Name."',\n";
249
                    $returndata .= "\t\t\"organizer\":\"".$item->Organizer->Mailbox->Name."\",\n";
217
                    $returndata .= "\t\tsubject:'".$item->Subject."',\n";
250
                    $returndata .= "\t\t\"subject\":\"".$item->Subject."\",\n";
218
                    $returndata .= "\t\tstart:'".date("G:i", strtotime($item->Start))."',\n";
251
                    $returndata .= "\t\t\"start\":\"".date("G:i", strtotime($item->Start))."\",\n";
219
                    $returndata .= "\t\tend:'".date("G:i", strtotime($item->End))."'\n";
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
                return "{ error:'No result',\nshortname:'".$shortname."'}\n";
262
                //return "{ \"error\":\"No result\",\n\"shortname\":\"".$shortname."\"}\n";
230
            }
263
            }
231
        }
264
        }
232
        catch (SoapFault $exception)
265
        catch (SoapFault $exception)
233
        {
266
        {
234
            return "{ error:'".$exception."',\nshortname:'".$shortname."'}\n";
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:'Unknown shortname',\nshortname:'".$shortname."'}\n";
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)