More fixes when migrating data from webservices

skala
Julio Montoya 13 years ago
parent 11894ed364
commit a1046f5537
  1. 109
      main/inc/lib/usermanager.lib.php
  2. 6
      tests/migrate/migrate.php
  3. 443
      tests/migrate/migration.class.php
  4. 104
      tests/migrate/migration.custom.class.php

@ -11,12 +11,52 @@
* @package chamilo.include.user
*/
class UserManager {
public static $columns = array(
'user_id',
'lastname',
'firstname',
'username',
'password',
'auth_source',
'email',
'status',
'official_code',
'phone',
'picture_uri',
'creator_id',
'competences',
'diplomas',
'openarea',
'teach',
'productions',
'chatcall_user_id',
'chatcall_date',
'chatcall_text',
'language',
'registration_date',
'expiration_date',
'active',
'openid',
'theme',
'hr_dept_id'
);
/**
* Empty constructor. This class is mostly static.
*/
private function __construct () {
}
static function clean_params($params) {
$clean_params = array();
foreach ($params as $key => $value) {
if (in_array($key, self::$columns)) {
$clean_params[$key] = $value;
}
}
return $clean_params;
}
/**
* Simpler version of create_user(). Doesn't send an e-mail and doesn't manage extra
* fields, between other things
@ -54,8 +94,8 @@ class UserManager {
}
$params['email'] = api_valid_email($params['email']) ? $params['email'] : null;
if (isset($params['user_id'])) {
if (isset($params['user_id'])) {
unset($params['user_id']);
}
@ -105,10 +145,11 @@ class UserManager {
// Database table definition
$table = Database::get_main_table(TABLE_MAIN_USER);
$user_id = Database::insert($table, $params);
if ($user_id) {
$clean_params = self::clean_params($params);
$user_id = Database::insert($table, $clean_params);
if ($user_id) {
if (api_get_multiple_access_url()) {
UrlManager::add_user_to_url($user_id, api_get_current_access_url_id());
} else {
@ -148,7 +189,7 @@ class UserManager {
/**
* Creates a new user for the platform
* @author Hugues Peeters <peeters@ipm.ucl.ac.be>,
* @author Roan Embrechts <roan_embrechts@yahoo.com>
* @author Roan Embrechts <roan_embrechts@yahoo.com>
* @param string Firstname
* @param string Lastname
* @param int Status (1 for course tutor, 5 for student, 6 for anonymous)
@ -166,7 +207,7 @@ class UserManager {
* @param array Extra fields
* @param string Encrypt method used if password is given encrypted. Set to an empty string by default
* @return mixed new user id - if the new user creation succeeds, false otherwise
* @desc The function tries to retrieve $_user['user_id'] from the global space. If it exists, $_user['user_id'] is the creator id. If a problem arises, it stores the error message in global $api_failureList
* @desc The function tries to retrieve $_user['user_id'] from the global space. If it exists, $_user['user_id'] is the creator id. If a problem arises, it stores the error message in global $api_failureList
* @assert ('Sam','Gamegie',5,'sam@example.com','jo','jo') > 1
* @assert ('Pippin','Took',null,null,'jo','jo') === false
*/
@ -316,33 +357,33 @@ class UserManager {
return $return;
}
/**
* Can user be deleted?
* This functions checks if there's a course in which the given user is the
* only course administrator. If that is the case, the user can't be
* deleted because the course would remain without a course admin.
* @param int $user_id The user id
* @return boolean true if user can be deleted
*/
public static function can_delete_user($user_id) {
global $_configuration;
if (isset($_configuration['delete_users']) && $_configuration['delete_users'] == false) {
return false;
}
$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
if ($user_id != strval(intval($user_id))) return false;
if ($user_id === false) return false;
$sql = "SELECT * FROM $table_course_user WHERE status = '1' AND user_id = '".$user_id."'";
$res = Database::query($sql);
while ($course = Database::fetch_object($res)) {
$sql = "SELECT user_id FROM $table_course_user WHERE status='1' AND course_code ='".Database::escape_string($course->course_code)."'";
$res2 = Database::query($sql);
if (Database::num_rows($res2) == 1) {
return false;
}
}
return true;
}
/**
* Can user be deleted?
* This functions checks if there's a course in which the given user is the
* only course administrator. If that is the case, the user can't be
* deleted because the course would remain without a course admin.
* @param int $user_id The user id
* @return boolean true if user can be deleted
*/
public static function can_delete_user($user_id) {
global $_configuration;
if (isset($_configuration['delete_users']) && $_configuration['delete_users'] == false) {
return false;
}
$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
if ($user_id != strval(intval($user_id))) return false;
if ($user_id === false) return false;
$sql = "SELECT * FROM $table_course_user WHERE status = '1' AND user_id = '".$user_id."'";
$res = Database::query($sql);
while ($course = Database::fetch_object($res)) {
$sql = "SELECT user_id FROM $table_course_user WHERE status='1' AND course_code ='".Database::escape_string($course->course_code)."'";
$res2 = Database::query($sql);
if (Database::num_rows($res2) == 1) {
return false;
}
}
return true;
}
/**
* Delete a user from the platform

@ -58,11 +58,13 @@ if (!empty($servers)) {
if (isset($matches['web_service_calls']['filename'])) {
require_once $matches['web_service_calls']['filename'];
}
//This functions truncates the transaction lists!
$m->test_transactions($matches['web_service_calls']);
$m->search_transactions($matches['web_service_calls']);
//$m->search_transactions($matches['web_service_calls']);
//Load transactions saved before
$m->load_transactions($matches);
$m->load_transactions($matches);
//print_r($m->errors_stack);
//echo "OK so far\n";

@ -147,12 +147,10 @@ class Migration {
}
}
function soap_call($web_service_params, $function_name, $params = array()) {
static function soap_call($web_service_params, $function_name, $params = array()) {
// Create the client instance
$url = $web_service_params['url'];
error_log("\nCalling function '$function_name' in $url with params: ");
var_dump($params);
try {
$client = new SoapClient($url);
} catch (SoapFault $fault) {
@ -165,67 +163,366 @@ class Migration {
$data = $client->$function_name($params);
} catch (SoapFault $fault) {
$error = 2;
die("Problem querying service - $function_name");
//die("Problem querying service - $function_name");
return array(
'error' => true,
'message' => 'Problem querying service - $function_name ',
'status_id' => 0
);
}
if (!empty($data)) {
error_log("Calling {$web_service_params['class']}::$function_name");
$result = $web_service_params['class']::$function_name($data);
return $web_service_params['class']::$function_name($data, $params);
} else {
return array(
'error' => true,
'message' => 'No Data found',
'status_id' => 0
);
error_log('No data found');
}
error_log("\n--End--");
}
function search_transactions($web_service_params) {
$libpath = api_get_path(LIBRARY_PATH);
function test_transactions($web_service_params) {
error_log('search_transactions');
//Just for tests
//Testing transactions
//Cleaning transaction table
$table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
$sql = "TRUNCATE $table";
Database::query($sql);
$result = self::soap_call($web_service_params, 'transacciones', array('ultimo' => 1, 'cantidad' => 10));
$result = self::soap_call($web_service_params, 'usuarioDetalles', array('uididpersona' => 'D236776B-D7A5-47FF-8328-55EBE9A59015'));
$result = self::soap_call($web_service_params, 'programaDetalles', array('uididprograma' => 'C3671999-095E-4018-9826-678BAFF595DF'));
$result = self::soap_call($web_service_params, 'cursoDetalles', array('uididcurso' => 'E2334974-9D55-4BB4-8B57-FCEFBE2510DC'));
$result = self::soap_call($web_service_params, 'faseDetalles', array('uididfase' => 'EBF63F1C-FBD7-46A5-B039-80B5AF064929'));
$result = self::soap_call($web_service_params, 'frecuenciaDetalles', array('uididfrecuencia' => '0091CD3B-F042-11D7-B338-0050DAB14015'));
$result = self::soap_call($web_service_params, 'intensidadDetalles', array('uididintensidad' => '0091CD3C-F042-11D7-B338-0050DAB14015'));
$result = self::soap_call($web_service_params, 'mesesDetalles', array('uididfase' => 'EBF63F1C-FBD7-46A5-B039-80B5AF064929'));
$result = self::soap_call($web_service_params, 'sedeDetalles', array('uididsede' => '7379A7D3-6DC5-42CA-9ED4-97367519F1D9'));
$result = self::soap_call($web_service_params, 'horarioDetalles', array('uididhorario' => 'E395895A-B480-456F-87F2-36B3A1EBB81C'));
$transaction_harcoded = array(
array(
'action' => 'usuario_agregar',
'item_id' => 'D236776B-D7A5-47FF-8328-55EBE9A59015',
'orig_id' => null,
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'usuario_editar',
'item_id' => 'D236776B-D7A5-47FF-8328-55EBE9A59015',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'usuario_eliminar',
'item_id' => 'D236776B-D7A5-47FF-8328-55EBE9A59015',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'usuario_matricula',
'item_id' => 'D236776B-D7A5-47FF-8328-55EBE9A59015',
'orig_id' => null,
'dest_id' => 'C3671999-095E-4018-9826-678BAFF595DF', //session
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'curso_agregar',
'item_id' => 'E2334974-9D55-4BB4-8B57-FCEFBE2510DC',
'orig_id' => null,
'dest_id' => null,
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'curso_eliminar',
'item_id' => 'E2334974-9D55-4BB4-8B57-FCEFBE2510DC',
'orig_id' => null,
'dest_id' => null,
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'curso_editar',
'item_id' => 'E2334974-9D55-4BB4-8B57-FCEFBE2510DC',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'curso_matricula',
'item_id' => 'E2334974-9D55-4BB4-8B57-FCEFBE2510DC', //course
'orig_id' => null,
'dest_id' => 'C3671999-095E-4018-9826-678BAFF595DF', //session
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'pa_agregar',
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',
'orig_id' => null,
'dest_id' => null,
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'pa_editar',
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',
'orig_id' => '0',
'dest_id' => null,
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'pa_eliminar',
'item_id' => '1',
'orig_id' => 'C3671999-095E-4018-9826-678BAFF595DF',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
//??
array(
'action' => 'pa_cambiar_aula',
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',
'orig_id' => '0',
'dest_id' => '',
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'pa_cambiar_horario',
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF', //session id
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'pa_cambiar_sede',
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',//session id
'orig_id' => '0',
'dest_id' => null,
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'cambiar_pa_fase',
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',//session id
'orig_id' => '0',
'dest_id' => null,
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'cambiar_pa_intensidad',
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'pa_cambiar_horario',
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'horario_agregar',
'item_id' => '2FF78F94-2474-4A9B-AD4A-B1DE624A2759', // horario
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'horario_editar',
'item_id' => '2FF78F94-2474-4A9B-AD4A-B1DE624A2759',
'orig_id' => '0',
'dest_id' => null,
'branch_id' => 1,
'status_id' => 0
),
array(
'action' => 'horario_eliminar',
'item_id' => '2FF78F94-2474-4A9B-AD4A-B1DE624A2759',
'orig_id' => '0',
'dest_id' => null,
'branch_id' => 1,
'status_id' => 0
),
/*
array(
'action' => 'aula_agregar',
'item_id' => '1',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'aula_eliminar',
'item_id' => '1',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'aula_editar',
'item_id' => '1',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),*/
array(
'action' => 'sede_agregar',
'item_id' => '7379A7D3-6DC5-42CA-9ED4-97367519F1D9',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'sede_editar',
'item_id' => '7379A7D3-6DC5-42CA-9ED4-97367519F1D9',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'sede_eliminar',
'item_id' => '7379A7D3-6DC5-42CA-9ED4-97367519F1D9',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'frecuencia_agregar',
'item_id' => '78D22B04-B7EB-4DB7-96A3-3557D4B80123',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'frecuencia_editar',
'item_id' => '78D22B04-B7EB-4DB7-96A3-3557D4B80123',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'frecuencia_eliminar',
'item_id' => '78D22B04-B7EB-4DB7-96A3-3557D4B80123',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'intensidad_agregar',
'item_id' => '0091CD3A-F042-11D7-B338-0050DAB14015',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'intensidad_editar',
'item_id' => '0091CD3A-F042-11D7-B338-0050DAB14015',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'intensidad_eliminar',
'item_id' => '0091CD3A-F042-11D7-B338-0050DAB14015',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
if (!empty($result)) {
error_log(count($result)." transactions found: ");
foreach ($result as $transaction_info) {
/*
id transaccion
id sede
id accion
id
origen
destino
timestamp
*/
//Add transactions here
$params = array(
'action' => 'usuario_agregar',
'item_id' => '1',
'orig_id' => '0',
'branch_id' => $transaction_info['sede'],
'dest_id' => null,
'status_id' => 0
);
$transaction_id = self::add_transaction($params);
if ($transaction_id) {
error_log("Transaction #$transaction_id was created");
}
}
}
array(
'action' => 'fase_agregar',
'item_id' => 'BDB68000-B073-404D-BC4A-351998678679',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'fase_editar',
'item_id' => 'BDB68000-B073-404D-BC4A-351998678679',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'fase_eliminar',
'item_id' => 'BDB68000-B073-404D-BC4A-351998678679',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'meses_agregar',
'item_id' => '78D22B04-B7EB-4DB7-96A3-3557D4B80123',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'meses_editar',
'item_id' => '78D22B04-B7EB-4DB7-96A3-3557D4B80123',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
array(
'action' => 'meses_eliminar',
'item_id' => '78D22B04-B7EB-4DB7-96A3-3557D4B80123',
'orig_id' => '0',
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
),
);
foreach( $transaction_harcoded as $transaction) {
$transaction_id = self::add_transaction($transaction);
}
}
function add_transaction($params) {
static function add_transaction($params) {
$table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
if (isset($params['id'])) {
unset($params['id']);
@ -239,7 +536,7 @@ class Migration {
return $inserted_id;
}
function get_branches() {
static function get_branches() {
$table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
$sql = "SELECT DISTINCT branch_id FROM $table ORDER BY branch_id";
$result = Database::query($sql);
@ -247,7 +544,7 @@ class Migration {
}
/** Get unprocesses */
function get_transactions($status_id = 0, $branch_id = null) {
static function get_transactions($status_id = 0, $branch_id = null) {
$table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
$branch_id = intval($branch_id);
$status_id = intval($status_id);
@ -261,7 +558,7 @@ class Migration {
return Database::store_result($result, 'ASSOC');
}
function get_latest_completed_transaction_by_branch($branch_id) {
static function get_latest_completed_transaction_by_branch($branch_id) {
$table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
$branch_id = intval($branch_id);
$sql = "SELECT id FROM $table WHERE status_id = 2 AND branch_id = $branch_id ORDER BY id DESC LIMIT 1";
@ -273,7 +570,7 @@ class Migration {
return 0;
}
function get_latest_transaction_by_branch($branch_id) {
static function get_latest_transaction_by_branch($branch_id) {
$table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
$branch_id = intval($branch_id);
$sql = "SELECT id FROM $table WHERE branch_id = $branch_id ORDER BY id DESC LIMIT 1";
@ -284,12 +581,13 @@ class Migration {
}
return 0;
}
function get_transaction_by_params($params, $type_result = 'all') {
static function get_transaction_by_params($params, $type_result = 'all') {
$table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
return Database::select('*', $table, $params, $type_result);
}
function update_transaction($params) {
static function update_transaction($params) {
return false;
$table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
if (empty($params['id'])) {
@ -305,7 +603,31 @@ class Migration {
event_system('transaction_error', 'transaction_id', $params['id'], $params['time_update']);
}
return Database::update($table, $params, array('id = ?' => $params['id']));
}
}
function search_transactions($web_service_params) {
error_log('search_transactions');
//Testing transactions
/*$result = self::soap_call($web_service_params, 'usuarioDetalles', array('uididpersona' => 'D236776B-D7A5-47FF-8328-55EBE9A59015'));
$result = self::soap_call($web_service_params, 'programaDetalles', array('uididprograma' => 'C3671999-095E-4018-9826-678BAFF595DF'));
$result = self::soap_call($web_service_params, 'cursoDetalles', array('uididcurso' => 'E2334974-9D55-4BB4-8B57-FCEFBE2510DC'));
$result = self::soap_call($web_service_params, 'faseDetalles', array('uididfase' => 'EBF63F1C-FBD7-46A5-B039-80B5AF064929'));
$result = self::soap_call($web_service_params, 'frecuenciaDetalles', array('uididfrecuencia' => '0091CD3B-F042-11D7-B338-0050DAB14015'));
$result = self::soap_call($web_service_params, 'intensidadDetalles', array('uididintensidad' => '0091CD3C-F042-11D7-B338-0050DAB14015'));
$result = self::soap_call($web_service_params, 'mesesDetalles', array('uididfase' => 'EBF63F1C-FBD7-46A5-B039-80B5AF064929'));
$result = self::soap_call($web_service_params, 'sedeDetalles', array('uididsede' => '7379A7D3-6DC5-42CA-9ED4-97367519F1D9'));
$result = self::soap_call($web_service_params, 'horarioDetalles', array('uididhorario' => 'E395895A-B480-456F-87F2-36B3A1EBB81C'));
$result = self::soap_call($web_service_params, 'transacciones', array('ultimo' => 354911, 'cantidad' => 2));
*/
$result = self::soap_call($web_service_params, 'transacciones', array('ultimo' => 354911, 'cantidad' => 2));
//Calling a process to save transactions
$web_service_params['class']::process_transactions($web_service_params, array('ultimo' => 354911, 'cantidad' => 2));
}
/* Load transactions */
@ -314,6 +636,7 @@ class Migration {
//Getting transactions of the migration_transaction table
$branches = self::get_branches();
if (!empty($branches)) {
foreach ($branches as $branch_info) {
//Get uncompleted transactions
@ -352,15 +675,19 @@ class Migration {
exit;
}
error_log("Waiting for transaction $latest_id_attempt");
//Loading function
$function_to_call = "transaction_" . $transaction['action'];
if (method_exists('MigrationCustom', $function_to_call)) {
error_log("Calling function MigrationCustom::$function_to_call");
$result = MigrationCustom::$function_to_call($transaction, $matches['web_service_calls']);
error_log($result['message']);
error_log("Calling function $function_to_call");
if ($result) {
exit;
if ($result['error'] == false) {
//Updating transaction
self::update_transaction(array('id' => $transaction['id'] , 'status_id' => $result['status']));
self::update_transaction(array('id' => $transaction['id'] , 'status_id' => $result['status_id']));
} else {
//failed
self::update_transaction(array('id' => $transaction['id'] , 'status_id' => MigrationCustom::TRANSACTION_STATUS_FAILED));

@ -38,6 +38,12 @@ class MigrationCustom {
static function clean_date_time($date) {
return substr($date, 0, 19);
}
/* Converts 2009-09-30T00:00:00-05:00 to 2009-09-30 00:00:00*/
static function clean_date_time_from_ws($date) {
$pre_clean = self::clean_date_time($date, 0, 19);
return str_replace('T', ' ', $pre_clean);
}
/**
* Transform the uid identifiers from MSSQL to a string
@ -659,8 +665,9 @@ class MigrationCustom {
static function transaction_usuario_agregar($data, $web_service_details) {
$uidIdPersonaId = $data['item_id'];
//Add user call the webservice
$user_info = $web_service_details['class']::usuarioDetalles($uidIdPersonaId);
$user_info = Migration::soap_call($web_service_details, 'usuarioDetalles', array('uididpersona' => $uidIdPersonaId));
if ($user_info['error'] == false) {
global $api_failureList;
$user_id = UserManager::add($user_info);
if ($user_id) {
return array(
@ -669,7 +676,7 @@ class MigrationCustom {
);
} else {
return array(
'message' => "User was not created : $uidIdPersonaId",
'message' => "User was not created : $uidIdPersonaId- UserManager::add reponse $user_id".print_r($api_failureList, 1),
'status_id' => self::TRANSACTION_STATUS_FAILED
);
}
@ -707,8 +714,8 @@ class MigrationCustom {
static function transaction_usuario_editar($data, $web_service_details) {
$uidIdPersonaId = $data['item_id'];
$user_id = self::get_user_id_by_persona_id($uidIdPersonaId);
if ($user_id) {
$user_info = $web_service_details['class']::usuarioDetalles($uidIdPersonaId);
if ($user_id) {
$user_info = Migration::soap_call($web_service_details, 'usuarioDetalles', array('uididpersona' => $uidIdPersonaId));
if ($user_info['error'] == false) {
//Edit user
$user_info['user_id'] = $user_id;
@ -733,6 +740,7 @@ class MigrationCustom {
$uidIdPersona = $data['item_id'];
$uidIdPrograma = $data['orig_id'];
$uidIdProgramaDestination = $data['dest_id'];
$user_id = self::get_user_id_by_persona_id($uidIdPersona);
if (empty($user_id)) {
@ -797,8 +805,8 @@ class MigrationCustom {
//Cursos
//añadir curso curso_agregar CID
static function transaction_curso_agregar($data, $web_service_details) {
$uidCursoId = $data['item_id'];
$course_info = $web_service_details['class']::cursoDetalles($uidCursoId);
$uidCursoId = $data['item_id'];
$course_info = Migration::soap_call($web_service_details, 'cursoDetalles', array('uididcurso' => $uidCursoId));
if ($course_info['error'] == false) {
$course_code = CourseManager::create_course($course_info);
if (!empty($course_code)) {
@ -837,10 +845,12 @@ class MigrationCustom {
//editar detalles de curso curso_editar CID
static function transaction_curso_editar($data, $web_service_details) {
$course_code = self::get_real_course_code($data['item_id']);
$uidCursoId = $data['item_id'];
$course_code = self::get_real_course_code($uidCursoId);
if (!empty($course_code)) {
$course_info = api_get_course_info($course_code);
$data_to_update = $web_service_details['class']::cursoDetalles($data['item_id']);
$course_info = api_get_course_info($course_code);
$data_to_update = Migration::soap_call($web_service_details, 'cursoDetalles', array('uididcurso' => $uidCursoId));
if ($data_to_update['error'] == false) {
//do some cleaning
$data_to_update['code'] = $course_info['code'];
@ -860,7 +870,7 @@ class MigrationCustom {
}
}
//cambiar curso de progr. académ. (de nada a A) curso_matricula CID ORIG DEST
//Cambiar curso de progr. académ. (de nada a A) curso_matricula CID ORIG DEST
static function transaction_curso_matricula($data) {
$course_code = self::get_real_course_code($data['item_id']);
$uidIdPrograma = $data['orig_id'];
@ -868,14 +878,20 @@ class MigrationCustom {
$session_id = self::get_session_id_by_programa_id($uidIdPrograma);
$destination_session_id = self::get_session_id_by_programa_id($uidIdProgramaDestination);
//@todo ???
if (!empty($course_code)) {
SessionManager::add_courses_to_session($destination_session_id, array($course_code));
return array(
if (empty($uidIdPrograma) && !empty($uidIdProgramaDestination) && !empty($destination_session_id)) {
SessionManager::add_courses_to_session($destination_session_id, array($course_code));
return array(
'message' => "Session updated $uidIdPrograma",
'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL
);
);
} else {
return array(
'message' => "Session destination was not found - [dest_id] not found",
'status_id' => self::TRANSACTION_STATUS_FAILED
);
}
} else {
return array(
'message' => "Course does not exists $course_code",
@ -886,8 +902,9 @@ class MigrationCustom {
//Programas académicos
//añadir p.a. pa_agregar PID
static function transaction_pa_agregar($data, $web_service_details) {
$session_info = $web_service_details['class']::programaDetalles($data['item_id']);
static function transaction_pa_agregar($data, $web_service_details) {
$session_info = Migration::soap_call($web_service_details, 'programaDetalles', array('uididprograma' => $data['item_id']));
if ($session_info['error'] == false) {
SessionManager::add($session_info);
} else {
@ -899,9 +916,10 @@ class MigrationCustom {
static function transaction_pa_editar($data, $web_service_details) {
$uidIdPrograma = $data['item_id'];
$session_id = self::get_session_id_by_programa_id($uidIdPrograma);
if (!empty($session_id)) {
$session_info = $web_service_details['class']::programaDetalles($data['item_id']);
if ($session_info['error'] == false) {
if (!empty($session_id)) {
$session_info = Migration::soap_call($web_service_details, 'programaDetalles', array('uididprograma' => $data['item_id']));
if ($session_info['error'] == false) {
$session_info['id'] = $session_id;
SessionManager::update($session_info);
return array(
'message' => "Session updated $uidIdPrograma",
@ -925,7 +943,7 @@ class MigrationCustom {
if (!empty($session_id)) {
SessionManager::delete($session_id);
return array(
'message' => "Session does not exists $uidIdPrograma",
'message' => "Session was deleted $session_id - $uidIdPrograma",
'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL
);
} else {
@ -937,8 +955,7 @@ class MigrationCustom {
}
static function transaction_cambiar_generic($extra_field_variable, $data) {
$uidIdPrograma = $data['item_id'];
$uidIdPrograma = $data['item_id'];
//$orig_id = $data['orig_id'];
$destination_id = $data['dest_id'];
@ -995,10 +1012,14 @@ class MigrationCustom {
}
//cambiar intensidad pa_cambiar_fase_intensidad CID ORIG DEST (id de "intensidadFase")
static function transaction_cambiar_pa_fase_intensidad($data) {
static function transaction_cambiar_pa_fase($data) {
self::transaction_cambiar_generic('fase', $data);
}
static function transaction_cambiar_pa_intensidad($data) {
self::transaction_cambiar_generic('intensidad', $data);
}
//-------
static function transaction_extra_field_agregar_generic($extra_field_variable, $data, $web_service_details) {
@ -1010,10 +1031,10 @@ class MigrationCustom {
$extra_field_option = new ExtraFieldOption('session');
$params = array(
'field_id' => $extra_field_info['id'],
'option_value' => $data['item_id'],
'option_display_text' => $data['name'],
'option_order' => null
'field_id' => $extra_field_info['id'],
'option_value' => $data['item_id'],
'option_display_text' => $data['name'],
'option_order' => null
);
$extra_field_option->save_one_item($params);
} else {
@ -1029,7 +1050,9 @@ class MigrationCustom {
$extra_field_option_info = $extra_field_option->get_field_option_by_field_and_option($extra_field_info['field_id'], $data['item_id']);
$function_name = $extra_field_variable."Detalles";
$data = $web_service_details['class']::$function_name($data['item_id']);
//$data = $web_service_details['class']::$function_name($data['item_id']);
$data = Migration::soap_call($web_service_details, $function_name, array("uidid".$extra_field_variable => $data['item_id']));
if ($data['error'] == false) {
//update array
$extra_field_option_info = array(
@ -1120,19 +1143,36 @@ class MigrationCustom {
//
// Intensidad/Fase
// añadir intfase_agregar IID
static function transaction_intfase_agregar($data, $web_service_details) {
static function transaction_intensidad_agregar($data, $web_service_details) {
self::transaction_extra_field_agregar_generic('intensidad', $data, $web_service_details);
}
// eliminar intfase_eliminar IID
static function transaction_intfase_eliminar($data, $web_service_details) {
static function transaction_intensidad_eliminar($data, $web_service_details) {
self::transaction_extra_field_eliminar_generic('intensidad', $data, $web_service_details);
}
// editar intfase_editar IID
static function transaction_intfase_editar($data, $web_service_details) {
static function transaction_intensidad_editar($data, $web_service_details) {
self::transaction_extra_field_editar_generic('intensidad', $data, $web_service_details);
}
//
// Intensidad/Fase
// añadir intfase_agregar IID
static function transaction_fase_agregar($data, $web_service_details) {
self::transaction_extra_field_agregar_generic('fase', $data, $web_service_details);
}
// eliminar intfase_eliminar IID
static function transaction_fase_eliminar($data, $web_service_details) {
self::transaction_extra_field_eliminar_generic('fase', $data, $web_service_details);
}
// editar intfase_editar IID
static function transaction_fase_editar($data, $web_service_details) {
self::transaction_extra_field_editar_generic('fase', $data, $web_service_details);
}
//
// Intensidad/Fase
// añadir intfase_agregar IID

Loading…
Cancel
Save