Fix session_list dates see #7719

1.10.x
Julio Montoya 11 years ago
parent 2733cbb17d
commit 91d9783dd5
  1. 21
      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,
$description = null,
$showDescription = 0,
$extraFields = array()
$extraFields = array(),
$sessionAdminId = 0
) {
global $_configuration;
@ -147,10 +148,11 @@ class SessionManager
}
if ($ready_to_create) {
$sessionAdminId = !empty($sessionAdminId) ? $sessionAdminId : api_get_user_id();
$values = array(
'name' => $name,
'id_coach' => $coachId,
'session_admin_id' => api_get_user_id(),
'session_admin_id' => $sessionAdminId,
'visibility' => $id_visibility,
'description' => $description,
'show_description' => intval($showDescription)
@ -1319,7 +1321,8 @@ class SessionManager
$description = null,
$showDescription = 0,
$duration = null,
$extraFields = array()
$extraFields = array(),
$sessionAdminId = 0
) {
$name = trim(stripslashes($name));
$id_coach = intval($id_coach);
@ -1365,6 +1368,10 @@ class SessionManager
'visibility' => $id_visibility
];
if (!empty($sessionAdminId)) {
$values['session_admin_id'] = $sessionAdminId;
}
if (!empty($startDate)) {
$values['access_start_date'] = $startDate;
}
@ -1395,10 +1402,12 @@ class SessionManager
Database::update($tbl_session, $values, array(
'id = ?' => $id
), true);
$extraFields['item_id'] = $id;
$sessionFieldValue = new ExtraFieldValue('session');
$sessionFieldValue->saveFieldValues($extraFields);
if (!empty($extraFields)) {
$extraFields['item_id'] = $id;
$sessionFieldValue = new ExtraFieldValue('session');
$sessionFieldValue->saveFieldValues($extraFields);
}
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_end = "$year_end-".(($month_end < 10)?"0$month_end":$month_end)."-".(($day_end < 10)?"0$day_end":$day_end) . ' 23:59:59';
} else {
$date_start = "000-00-00 00:00:00";
$date_end = "000-00-00 00:00:00";
$date_start = "";
$date_end = "";
}
if (empty($name)) {
@ -3707,27 +3707,25 @@ function WSCreateSession($params)
$diffEnd = new DateInterval($nb_days_access_after);
$coachStartDate = $startDate->sub($diffStart);
$coachEndDate = $endDate->add($diffEnd);
Database::query(
"INSERT INTO $tbl_session(
name,
access_start_date,
access_end_date,
id_coach,
session_admin_id,
coach_access_start_date,
coach_access_end_date
)
VALUES(
'".addslashes($name)."',
'$date_start',
'$date_end',
'$id_coach',
".intval($_user['user_id']).",
'".$coachStartDate->format('Y-m-d H:i:s')."',
'".$coachEndDate->format('Y-m-d H:i:s')."'
)"
$id_session = SessionManager::create_session(
$name,
$date_start,
$date_end,
$date_start,
$date_end,
$coachStartDate->format('Y-m-d H:i:s'),
$coachEndDate->format('Y-m-d H:i:s'),
$id_coach,
0,
0,
false,
null,
null,
0,
array(),
$_user['user_id']
);
$id_session = Database::insert_id();
// Save new fieldlabel into course_field table.
$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_end="$year_end-".(($month_end < 10)?"0$month_end":$month_end)."-".(($day_end < 10)?"0$day_end":$day_end);
} else {
$date_start="000-00-00";
$date_end="000-00-00";
$date_start="";
$date_end="";
}
if (empty($name)) {
$results[] = 0; //SessionNameIsRequired
@ -3935,16 +3933,27 @@ function WSEditSession($params)
$diffEnd = new DateInterval($nb_days_access_after);
$coachStartDate = $startDate->sub($diffStart);
$coachEndDate = $endDate->add($diffEnd);
$sql = "UPDATE $tbl_session SET " .
"name = '".addslashes($name)."', " .
"date_start = '".$date_start."', " .
"date_end = '".$date_end."', " .
"id_coach = '". $id_coach."', " .
"session_admin_id = '". intval($_user['user_id'])."', " .
"coach_access_start_date = '". $coachStartDate->format('Y-m-d H:i:s') . "', " .
"coach_access_end_date = '". $coachEndDate->format('Y-m-d H:i:s') . "'" .
" WHERE id = '".$id."'";
Database::query($sql);
$sessionInfo = api_get_session_info($id);
SessionManager::edit_session(
$id,
$name,
$date_start,
$date_end,
$date_start,
$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) {
foreach ($extra_list as $extra) {

@ -28,11 +28,11 @@ $sql = "CREATE TABLE IF NOT EXISTS $table (
Database::query($sql);
$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);
while ($row = Database::fetch_assoc($res)) {
$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);
}

Loading…
Cancel
Save