diff --git a/main/inc/lib/extra_field_value.lib.php b/main/inc/lib/extra_field_value.lib.php index 433b665c3c..6357b24d49 100644 --- a/main/inc/lib/extra_field_value.lib.php +++ b/main/inc/lib/extra_field_value.lib.php @@ -173,8 +173,6 @@ class ExtraFieldValue extends Model { } } - - public function get_values_by_handler_and_field_variable($item_id, $field_variable, $transform = false) { $field_id = intval($field_id); $item_id = Database::escape_string($item_id); diff --git a/tests/migrate/migration.class.php b/tests/migrate/migration.class.php index 22c3048572..10095c8385 100644 --- a/tests/migrate/migration.class.php +++ b/tests/migrate/migration.class.php @@ -145,9 +145,9 @@ class Migration { } //Stop here (only for tests) -// if ($table['orig_table'] == 'Matricula') { -// exit; -// } + if ($table['orig_table'] == 'ProgramaAcademico') { + //exit; + } } } @@ -184,7 +184,7 @@ class Migration { } $extra_fields_to_insert = array(); - foreach ($table['fields_match'] as $id_field => $details) { + foreach ($table['fields_match'] as $id_field => $details) { if ($id_field == 0) { $first_field = $details['dest']; } @@ -225,7 +225,7 @@ class Migration { if ($key == 'option_value' && $value == $dest_row[$details['dest']]) { $value = $option['option_display_text']; if ($field_type == Extrafield::FIELD_TYPE_SELECT) { - $value = $option['option_display_text']; + $value = $option['option_value']; } $params = array( 'field_id' => $option['field_id'], @@ -266,7 +266,7 @@ class Migration { case 'course': //Saving courses in array if ($item_result) { - $this->data_list['courses'][$dest_row['uidIdCurso']] = $item_result; + //$this->data_list['courses'][$dest_row['uidIdCurso']] = $item_result; } else { error_log('Course Not FOUND'); error_log(print_r($item_result, 1)); @@ -279,11 +279,11 @@ class Migration { $handler_id = $item_result['user_id']; //error_log($dest_row['email'].' '.$dest_row['uidIdPersona']); if (isset($dest_row['uidIdAlumno'])) { - $this->data_list['users_alumno'][$dest_row['uidIdAlumno']]['extra'] = $item_result; + //$this->data_list['users_alumno'][$dest_row['uidIdAlumno']]['extra'] = $item_result; } if (isset($dest_row['uidIdEmpleado'])) { //print_r($dest_row['uidIdEmpleado']);exit; - $this->data_list['users_empleado'][$dest_row['uidIdEmpleado']]['extra'] = $item_result; + //$this->data_list['users_empleado'][$dest_row['uidIdEmpleado']]['extra'] = $item_result; } } else { global $api_failureList; @@ -304,11 +304,12 @@ class Migration { } } } else { - $this->errors_stack[] = "No destination data dest_func found. Abandoning data with first field $first_field = " . $dest_row[$first_field]; + // $this->errors_stack[] = "No destination data dest_func found. Abandoning data with first field $first_field = " . $dest_row[$first_field]; } unset($extra_fields_to_insert); //remove to free up memory return $dest_row; } + /** * Helper function to create extra fields in the Chamilo database * @param Array An array containing an 'extra_fields' entry with details about the required extra fields @@ -325,8 +326,7 @@ class Migration { $extra_field_id = $extra_field_obj->save($extra_field); $selected_fields = self::prepare_field_match($options); - //error_log('$selected_fields: ' . print_r($selected_fields, 1)); - + //Adding options if (!empty($options)) { $extra_field_option_obj = new ExtraFieldOption($table['dest_table']); diff --git a/tests/migrate/migration.custom.class.php b/tests/migrate/migration.custom.class.php index 9996e95ffe..63529e9b0b 100644 --- a/tests/migrate/migration.custom.class.php +++ b/tests/migrate/migration.custom.class.php @@ -61,6 +61,7 @@ class MigrationCustom { return self::clean_utf8($row_data['session_name']); } + /** @deprecated */ public function log_original_persona_unique_id($data, &$omigrate, $row_data) { /* Temporarily commented if (isset($omigrate['users_persona'][$row_data['uidIdPersona']])) { @@ -77,6 +78,7 @@ class MigrationCustom { return $data; } + /** @deprecated */ public function log_original_teacher_unique_id($data, &$omigrate, $row_data) { $row = array('uidIdPersona' => $row_data['uidIdPersona'], 'uidIdEmpleado' => $row_data['uidIdEmpleado']); $omigrate['users_empleado'][$row_data['uidIdEmpleado']] = $row; @@ -85,6 +87,7 @@ class MigrationCustom { /** * Log data from the original users table + @deprecated */ public function log_original_course_unique_id($data, &$omigrate) { $omigrate['courses'][$data] = 0; @@ -93,19 +96,22 @@ class MigrationCustom { /** * Log data from the original users table + * @deprecated */ public function log_original_session_unique_id($data, &$omigrate, $row_data) { $omigrate['sessions'][$row_data['uidIdPrograma']] = $row_data; return $data; } - public function get_real_course_code($data, &$omigrate, $row_data) { - if (!isset($omigrate['courses'][$data])) { - error_log("Course not found in data_list array"); - //error_log(print_r($data, 1)); - //exit; + public function get_real_course_code($data, &$omigrate, $row_data) { + $extra_field = new ExtraFieldValue('course'); + $values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdCurso', $data); + + if ($values) { + return $values['code']; + } else { + error_log("Course not found in DB"); } - return $omigrate['courses'][$data]['code']; } function get_session_id_by_programa_id($data, &$omigrate, $row_data) { @@ -120,6 +126,7 @@ class MigrationCustom { return $omigrate['sessions'][$data]; } + /* Not used */ public function get_user_id($data, &$omigrate, $row_data) { //error_log('get_real_teacher_id'); //error_log(print_r($data, 1)); @@ -138,18 +145,28 @@ class MigrationCustom { return $omigrate['users_alumno'][$data]['user_id']; } - public function get_real_teacher_id($data, &$omigrate, $row_data) { + public function get_real_teacher_id($uidIdPersona, &$omigrate, $row_data) { $default_teacher_id = self::default_admin_id; //error_log('get_real_teacher_id'); //error_log(print_r($data, 1)); //error_log(print_r($omigrate['users_empleado'], 1)); //error_log('get_real_teacher_id'); //error_log($data); - if (empty($data)) { + if (empty($uidIdPersona)) { //error_log('No teacher provided'); return $default_teacher_id; } + $extra_field = new ExtraFieldValue('user'); + $values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdPersona', $uidIdPersona); + + if ($values) { + return $values['user_id']; + } else { + return $default_teacher_id; + } + + /* if (!isset($omigrate['users_empleado'][$data])) { //error_log(' Teacher not found big problem! '); //echo $data; @@ -159,7 +176,7 @@ class MigrationCustom { } else { //error_log('Teacher found: '.$omigrate['users_empleado'][$data]['extra']['user_id']); return isset($omigrate['users_empleado'][$data]['extra']) ? $omigrate['users_empleado'][$data]['extra']['user_id'] : $default_teacher_id; - } + } */ } /** @@ -279,7 +296,7 @@ class MigrationCustom { if (!$user_info) { echo 'error'; } - UserManager::update_extra_field_value($user_info['user_id'],'uidIdPersona',$id_persona); + UserManager::update_extra_field_value($user_info['user_id'], 'uidIdPersona', $id_persona); return $user_info; } /** @@ -321,8 +338,6 @@ class MigrationCustom { public function add_user_to_session($data) { //error_log('add_user_to_session'); ///print_r($data); - - //Search uidIdPrograma //Search uidIdAlumno @@ -333,8 +348,7 @@ class MigrationCustom { $user_id = null; if ($result && $result['session_id']) { - $session_id = $result['session_id']; - + $session_id = $result['session_id']; } $extra_field_value = new ExtraFieldValue('user'); diff --git a/tests/migrate/migration.mssql.class.php b/tests/migrate/migration.mssql.class.php index 40da8290fb..ad0ff03c3f 100644 --- a/tests/migrate/migration.mssql.class.php +++ b/tests/migrate/migration.mssql.class.php @@ -32,7 +32,7 @@ class MigrationMSSQL extends Migration { } //In order to process X item of each table add TOP X - $top = null; + $top = null; $top = " TOP 1000 "; if (in_array($table, array('Empleado', 'Alumno'))) { $top = " TOP 1000 ";