+ global $i18n;
+ global $user;
+
+ // Determine date for a new entry.
+ $entry_date = ttTimeHelper::dateFromDayHeader($fields['start_date'], $fields['day_header']);
+ $objEntryDate = new DateAndTime(DB_DATEFORMAT, $entry_date);
+
+ // Prohibit creating entries in future.
+ if (defined('FUTURE_ENTRIES') && !isTrue(FUTURE_ENTRIES) && $fields['browser_today']) {
+ $objBrowserToday = new DateAndTime(DB_DATEFORMAT, $fields['browser_today']);
+ if ($objEntryDate->after($objBrowserToday)) {
+ $err->add($i18n->getKey('error.future_date'));
+ return false;
+ }
+ }
+
+ // Temporary check for custom field and exit if one is found, as this is not yet implemented.
+ $temp = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'cf_1');
+ if ($temp) {
+ $err->add("Week view is work in progress. Inserting records with custom fields is not yet implemented. Try again later.");
+ return false;
+ }
+
+ // Prepare an array of fields for regular insert function.
+ $fields4insert = array();
+ $fields4insert['user_id'] = $user->getActiveUser();
+ $fields4insert['date'] = $entry_date;
+ $fields4insert['duration'] = $fields['duration'];
+ $fields4insert['client'] = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'cl');
+ $fields4insert['billable'] = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'bl');
+ $fields4insert['project'] = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'pr');
+ $fields4insert['task'] = ttTimeHelper::parseFromWeekViewRow($fields['row_id'], 'ts');
+
+ // Try to insert a record.
+ $id = ttTimeHelper::insert($fields4insert);
+ if (!$id) return false; // Something failed.
+
+ // TODO: Deal with custom fieeld log here. Currently not implemented.