public function create(NewEventDraftModel $newEventDraftModel) { global $DB; try { $DB->beginTransaction(); $stat = $DB->prepare("SELECT max(slug) AS c FROM new_event_draft_information WHERE site_id=:site_id"); $stat->execute(array('site_id' => $newEventDraftModel->getSiteId())); $data = $stat->fetch(); $newEventDraftModel->setSlug($data['c'] + 1); $stat = $DB->prepare("INSERT INTO new_event_draft_information (site_id, details, user_account_id,created_at,updated_at,slug) " . "VALUES (:site_id, :details, :user_account_id, :created_at, :updated_at, :slug ) RETURNING id"); $stat->execute(array('site_id' => $newEventDraftModel->getSiteId(), 'slug' => $newEventDraftModel->getSlug(), 'details' => json_encode($newEventDraftModel->getDetailsForDataBase()), 'user_account_id' => $newEventDraftModel->getUserAccountId() ? $newEventDraftModel->getUserAccountId() : null, 'created_at' => \TimeSource::getFormattedForDataBase(), 'updated_at' => \TimeSource::getFormattedForDataBase())); $data = $stat->fetch(); $newEventDraftModel->setId($data['id']); $stat = $DB->prepare("INSERT INTO new_event_draft_history (new_event_draft_id, details, user_account_id,created_at,not_duplicate_events_changed,event_id_changed,was_existing_event_id_changed) " . "VALUES (:new_event_draft_id, :details, :user_account_id,:created_at,:not_duplicate_events_changed,:event_id_changed,:was_existing_event_id_changed )"); $stat->execute(array('new_event_draft_id' => $newEventDraftModel->getId(), 'details' => json_encode($newEventDraftModel->getDetailsForDataBase()), 'user_account_id' => $newEventDraftModel->getUserAccountId() ? $newEventDraftModel->getUserAccountId() : null, 'created_at' => \TimeSource::getFormattedForDataBase(), 'not_duplicate_events_changed' => -2, 'event_id_changed' => -2, 'was_existing_event_id_changed' => -2)); $DB->commit(); } catch (Exception $e) { $DB->rollBack(); } }