}
        unset($message);
    } else {
        // validate date fields
        //$now = new DateTime('now');
        $st = DateTime::createFromFormat("m/d/Y H:i A", $date . " " . $start_time);
        $et = DateTime::createFromFormat("m/d/Y H:i A", $date . " " . $end_time);
        /*
                if($now > $st) {
                    array_push($failure_messages, "<p><strong>Error:</strong> You cannot create an event that has already started</p>");
                    } else */
        if ($st > $et) {
            array_push($failure_messages, "<p><strong>Time paradox:</strong> You cannot have an event which ends before it starts.</p>");
        } else {
            $event->save();
            $event_id = $event->getEventId();
            header("Location:../events/details.php?event_id={$event_id}&new=1");
        }
    }
}
// end if for was submitted
?>
<!DOCTYPE html>
<html>
<head>
    <?php 
include_once '../basic_includes/sheets_and_scripts.php';
?>
    <title>Create Event</title>
</head>
<body>
Example #2
0
 public function testDeleteForceCascadeOneToOne()
 {
     $event = new Event();
     $event->setTitle('Delete Restrict Event');
     $event->setStartDate(new fDate());
     $event->store();
     $event_detail = new EventDetail();
     $event_detail->setEventId($event->getEventId());
     $event_detail->setAllowsRegistration(TRUE);
     $event_detail->store();
     $event->delete(TRUE);
     $this->assertEquals(FALSE, $event->exists());
 }
 public function update(Event $event)
 {
     global $PDO;
     if (!$event->getEventId()) {
         throw new Exception("Event don't have eventId when event don't exists");
     } else {
         update("event", ["title" => $event->getTitle(), "description" => $event->getDescription(), "type" => $event->getType(), "location" => $event->getLocation(), "start_hour" => $event->getStartHour(), "final_hour" => $event->getFinalHour(), "color" => $event->getColor(), "status" => $event->getStatus(), "date_create" => $event->getDateCreate(), "user_id" => $event->getUserId(), "google_calendar_event_id" => $event->getGoogleCalendarEventId(), "notify_status" => $event->getNotifyStatus(), "parent_event_id" => $event->getParentEventId(), "calendar_id" => $event->getCalendarId()], ["Codigo" => $event->getEventId()]);
         //Event::eventId exits when not problem
         $eventMeta = $event->getEventMeta();
         update("event_meta", ["event_id" => $eventMeta->getEventId(), "date_start" => $eventMeta->getDateStart(), "interval_case" => $eventMeta->getIntervalCase(), "interval_value" => $eventMeta->getIntervalValue(), "week" => $eventMeta->getWeek(), "week_day" => $eventMeta->getWeekDay()], ["Codigo" => $eventMeta->getEventMetaId()]);
         //verify if exists attendees
         $childEventsId = $event->childEventsId();
         if ($childEventsId) {
             $filterOfChildEventsId = implode(",", $childEventsId);
             $rowsAffected = $PDO->exec("\n                UPDATE event \n                SET title = '{$event->getTitle()}',\n                description = '{$event->getDescription()}',\n                type = '{$event->getType()}',\n                location = '{$event->getLocation()}',\n                start_hour = '{$event->getStartHour()}',\n                final_hour = '{$event->getFinalHour()}',\n                color = '{$event->getColor()}'\n                WHERE Codigo IN ({$filterOfChildEventsId})");
             $rowsAffected = $PDO->exec("\n                UPDATE event_meta \n                SET date_start = '{$eventMeta->getDateStart()}',\n                interval_case = '{$eventMeta->getIntervalCase()}',\n                interval_value = '{$eventMeta->getIntervalValue()}',\n                week = '{$eventMeta->getWeek()}',\n                week_day = '{$eventMeta->getWeekDay()}'\n                WHERE event_id IN ({$filterOfChildEventsId})");
         }
         if ($event->getGoogleCalendarEventId()) {
             //verify google access
             $myGoogleClient = get_my_google_client($event->getUserId());
             if ($myGoogleClient) {
                 $client = $myGoogleClient->client;
                 $service = new Google_Service_Calendar($client);
                 $googleEvent = $service->events->get('primary', $event->getGoogleCalendarEventId());
                 $googleEvent->setSummary($event->getTitle());
                 $googleEvent->setDescription($event->getDescription());
                 $googleEvent->setLocation($event->getLocation());
                 ////////////////////////////////////////////////////////////////////////
                 //create google calendar datetime
                 $dateStart = $eventMeta->getDateStart();
                 $dateEnd = new DateTime($eventMeta->getDateStart());
                 $startHour = $event->getStartHour();
                 $finalHour = $event->getFinalHour();
                 //dateEnd
                 $intervalValue = $eventMeta->getIntervalValue();
                 $dateEnd->add(new DateInterval("P{$intervalValue}D"));
                 $dateEnd = $dateEnd->format("Y-m-d");
                 $start_event_date_time = new Google_Service_Calendar_EventDateTime();
                 $start_event_date_time->setDateTime("{$dateStart}T{$startHour}");
                 $start_event_date_time->setTimeZone("America/Lima");
                 $end_event_date_time = new Google_Service_Calendar_EventDateTime();
                 $end_event_date_time->setDateTime("{$dateEnd}T{$finalHour}");
                 $end_event_date_time->setTimeZone("America/Lima");
                 ////////////////////////////////////////////////////////////////////////
                 $googleEvent->setStart($start_event_date_time);
                 $googleEvent->setEnd($end_event_date_time);
                 $service->events->update('primary', $googleEvent->getId(), $googleEvent);
             }
         }
     }
     return $event;
 }