Fix session_list dates see #7719

1.10.x
Julio Montoya 11 years ago
parent 2733cbb17d
commit 91d9783dd5
  1. 17
      main/inc/lib/sessionmanager.lib.php
  2. 77
      main/webservices/registration.soap.php
  3. 4
      plugin/buycourses/database.php

@ -79,7 +79,8 @@ class SessionManager
$duration = null, $duration = null,
$description = null, $description = null,
$showDescription = 0, $showDescription = 0,
$extraFields = array() $extraFields = array(),
$sessionAdminId = 0
) { ) {
global $_configuration; global $_configuration;
@ -147,10 +148,11 @@ class SessionManager
} }
if ($ready_to_create) { if ($ready_to_create) {
$sessionAdminId = !empty($sessionAdminId) ? $sessionAdminId : api_get_user_id();
$values = array( $values = array(
'name' => $name, 'name' => $name,
'id_coach' => $coachId, 'id_coach' => $coachId,
'session_admin_id' => api_get_user_id(), 'session_admin_id' => $sessionAdminId,
'visibility' => $id_visibility, 'visibility' => $id_visibility,
'description' => $description, 'description' => $description,
'show_description' => intval($showDescription) 'show_description' => intval($showDescription)
@ -1319,7 +1321,8 @@ class SessionManager
$description = null, $description = null,
$showDescription = 0, $showDescription = 0,
$duration = null, $duration = null,
$extraFields = array() $extraFields = array(),
$sessionAdminId = 0
) { ) {
$name = trim(stripslashes($name)); $name = trim(stripslashes($name));
$id_coach = intval($id_coach); $id_coach = intval($id_coach);
@ -1365,6 +1368,10 @@ class SessionManager
'visibility' => $id_visibility 'visibility' => $id_visibility
]; ];
if (!empty($sessionAdminId)) {
$values['session_admin_id'] = $sessionAdminId;
}
if (!empty($startDate)) { if (!empty($startDate)) {
$values['access_start_date'] = $startDate; $values['access_start_date'] = $startDate;
} }
@ -1395,10 +1402,12 @@ class SessionManager
Database::update($tbl_session, $values, array( Database::update($tbl_session, $values, array(
'id = ?' => $id 'id = ?' => $id
), true); ), true);
$extraFields['item_id'] = $id;
if (!empty($extraFields)) {
$extraFields['item_id'] = $id;
$sessionFieldValue = new ExtraFieldValue('session'); $sessionFieldValue = new ExtraFieldValue('session');
$sessionFieldValue->saveFieldValues($extraFields); $sessionFieldValue->saveFieldValues($extraFields);
}
return $id; return $id;
} }

@ -3679,8 +3679,8 @@ function WSCreateSession($params)
$date_start = "$year_start-".(($month_start < 10)?"0$month_start":$month_start)."-".(($day_start < 10)?"0$day_start":$day_start) . ' 00:00:00'; $date_start = "$year_start-".(($month_start < 10)?"0$month_start":$month_start)."-".(($day_start < 10)?"0$day_start":$day_start) . ' 00:00:00';
$date_end = "$year_end-".(($month_end < 10)?"0$month_end":$month_end)."-".(($day_end < 10)?"0$day_end":$day_end) . ' 23:59:59'; $date_end = "$year_end-".(($month_end < 10)?"0$month_end":$month_end)."-".(($day_end < 10)?"0$day_end":$day_end) . ' 23:59:59';
} else { } else {
$date_start = "000-00-00 00:00:00"; $date_start = "";
$date_end = "000-00-00 00:00:00"; $date_end = "";
} }
if (empty($name)) { if (empty($name)) {
@ -3707,27 +3707,25 @@ function WSCreateSession($params)
$diffEnd = new DateInterval($nb_days_access_after); $diffEnd = new DateInterval($nb_days_access_after);
$coachStartDate = $startDate->sub($diffStart); $coachStartDate = $startDate->sub($diffStart);
$coachEndDate = $endDate->add($diffEnd); $coachEndDate = $endDate->add($diffEnd);
Database::query(
"INSERT INTO $tbl_session( $id_session = SessionManager::create_session(
name, $name,
access_start_date, $date_start,
access_end_date, $date_end,
id_coach, $date_start,
session_admin_id, $date_end,
coach_access_start_date, $coachStartDate->format('Y-m-d H:i:s'),
coach_access_end_date $coachEndDate->format('Y-m-d H:i:s'),
) $id_coach,
VALUES( 0,
'".addslashes($name)."', 0,
'$date_start', false,
'$date_end', null,
'$id_coach', null,
".intval($_user['user_id']).", 0,
'".$coachStartDate->format('Y-m-d H:i:s')."', array(),
'".$coachEndDate->format('Y-m-d H:i:s')."' $_user['user_id']
)"
); );
$id_session = Database::insert_id();
// Save new fieldlabel into course_field table. // Save new fieldlabel into course_field table.
$field_id = SessionManager::create_session_extra_field( $field_id = SessionManager::create_session_extra_field(
@ -3913,8 +3911,8 @@ function WSEditSession($params)
$date_start="$year_start-".(($month_start < 10)?"0$month_start":$month_start)."-".(($day_start < 10)?"0$day_start":$day_start); $date_start="$year_start-".(($month_start < 10)?"0$month_start":$month_start)."-".(($day_start < 10)?"0$day_start":$day_start);
$date_end="$year_end-".(($month_end < 10)?"0$month_end":$month_end)."-".(($day_end < 10)?"0$day_end":$day_end); $date_end="$year_end-".(($month_end < 10)?"0$month_end":$month_end)."-".(($day_end < 10)?"0$day_end":$day_end);
} else { } else {
$date_start="000-00-00"; $date_start="";
$date_end="000-00-00"; $date_end="";
} }
if (empty($name)) { if (empty($name)) {
$results[] = 0; //SessionNameIsRequired $results[] = 0; //SessionNameIsRequired
@ -3935,16 +3933,27 @@ function WSEditSession($params)
$diffEnd = new DateInterval($nb_days_access_after); $diffEnd = new DateInterval($nb_days_access_after);
$coachStartDate = $startDate->sub($diffStart); $coachStartDate = $startDate->sub($diffStart);
$coachEndDate = $endDate->add($diffEnd); $coachEndDate = $endDate->add($diffEnd);
$sql = "UPDATE $tbl_session SET " .
"name = '".addslashes($name)."', " . $sessionInfo = api_get_session_info($id);
"date_start = '".$date_start."', " .
"date_end = '".$date_end."', " . SessionManager::edit_session(
"id_coach = '". $id_coach."', " . $id,
"session_admin_id = '". intval($_user['user_id'])."', " . $name,
"coach_access_start_date = '". $coachStartDate->format('Y-m-d H:i:s') . "', " . $date_start,
"coach_access_end_date = '". $coachEndDate->format('Y-m-d H:i:s') . "'" . $date_end,
" WHERE id = '".$id."'"; $date_start,
Database::query($sql); $date_end,
$coachStartDate->format('Y-m-d H:i:s'),
$coachEndDate->format('Y-m-d H:i:s'),
$id_coach,
$sessionInfo['session_category_id'],
$sessionInfo['visibility'],
$sessionInfo['description'],
$sessionInfo['show_description'],
$sessionInfo['duration'],
null,
$_user['user_id']
);
if (is_array($extra_list) && count($extra_list) > 0) { if (is_array($extra_list) && count($extra_list) > 0) {
foreach ($extra_list as $extra) { foreach ($extra_list as $extra) {

@ -28,11 +28,11 @@ $sql = "CREATE TABLE IF NOT EXISTS $table (
Database::query($sql); Database::query($sql);
$tableSession = Database::get_main_table(TABLE_MAIN_SESSION); $tableSession = Database::get_main_table(TABLE_MAIN_SESSION);
$sql = "SELECT id, name, date_start, date_end FROM $tableSession"; $sql = "SELECT id, name, access_start_date, access_end_date FROM $tableSession";
$res = Database::query($sql); $res = Database::query($sql);
while ($row = Database::fetch_assoc($res)) { while ($row = Database::fetch_assoc($res)) {
$presql = "INSERT INTO $table (id, name, date_start, date_end, visible) $presql = "INSERT INTO $table (id, name, date_start, date_end, visible)
VALUES ('" . $row['id'] . "','" . $row['name'] . "','" . $row['date_start'] . "','" . $row['date_end'] . "','NO')"; VALUES ('" . $row['id'] . "','" . $row['name'] . "','" . $row['access_start_date'] . "','" . $row['access_end_date'] . "','NO')";
Database::query($presql); Database::query($presql);
} }

Loading…
Cancel
Save