diff --git a/main/inc/lib/database.constants.inc.php b/main/inc/lib/database.constants.inc.php
index d02f13835f..9b2dbd0905 100644
--- a/main/inc/lib/database.constants.inc.php
+++ b/main/inc/lib/database.constants.inc.php
@@ -344,5 +344,9 @@ define('TABLE_GRADE_MODEL_COMPONENTS', 'grade_components');
define('TABLE_BRANCH_SYNC', 'branch_sync');
define('TABLE_BRANCH_SYNC_LOG', 'branch_sync_log');
-define('TABLE_BRANCH_TRANSACTION', 'branch_transaction');
-define('TABLE_BRANCH_TRANSACTION_STATUS', 'branch_transaction_status');
+
+//define('TABLE_BRANCH_TRANSACTION', 'branch_transaction');
+//define('TABLE_BRANCH_TRANSACTION_STATUS', 'branch_transaction_status');
+
+define('TABLE_BRANCH_TRANSACTION', 'migration_transaction');
+define('TABLE_BRANCH_TRANSACTION_STATUS', 'migration_transaction_status');
\ No newline at end of file
diff --git a/tests/migrate/migration.class.php b/tests/migrate/migration.class.php
index c516a39576..f9039f3e15 100644
--- a/tests/migrate/migration.class.php
+++ b/tests/migrate/migration.class.php
@@ -48,10 +48,10 @@ class Migration {
/**
* Temporary handler for SQL result
*/
- public $odbrows = null;
+ public $odbrows = null;
public $web_service_connection_info = array();
-
+
/**
* The constructor assigns all database connection details to the migration
* object
@@ -73,7 +73,7 @@ class Migration {
$this->odbuser = $dbuser;
$this->odbpass = $dbpass;
$this->odbname = $dbname;
-
+
// Set the boost level if set in config.php
if (!empty($boost) && is_array($boost)) {
global $data_list;
@@ -91,8 +91,8 @@ class Migration {
public function connect() {
//extend in child class
}
-
- public function set_web_service_connection_info($matches) {
+
+ public function set_web_service_connection_info($matches) {
$this->web_service_connection_info = $matches['web_service_calls'];
}
@@ -117,7 +117,7 @@ class Migration {
$build_only = true;
}
- // Creating extra fields if necessary inside Chamilo (to store
+ // Creating extra fields if necessary inside Chamilo (to store
// original fields)
if (isset($table['extra_fields']) && in_array($table['dest_table'], array('course', 'user', 'session'))) {
$extra_fields = self::_create_extra_fields($table);
@@ -160,7 +160,7 @@ class Migration {
}
}
}
-
+
/**
* Call the SOAP web service as detailed in the parameters
* @param array Settings for the WS call
@@ -168,18 +168,18 @@ class Migration {
* @param array Variables to be passed as params to the function
* @return array Results as returned by the SOAP call
*/
- static 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'];
+ $url = $web_service_params['url'];
try {
$client = new SoapClient($url);
} catch (SoapFault $fault) {
$error = 1;
die('Error connecting');
}
-
- $client->debug_flag = true;
- try {
+
+ $client->debug_flag = true;
+ try {
$data = $client->$function_name($params);
} catch (SoapFault $fault) {
$error = 2;
@@ -190,25 +190,25 @@ class Migration {
'status_id' => 0
);
}
-
+
if (!empty($data)) {
error_log("Calling MigrationCustom::$function_name $url with params: ".print_r($params,1));
- return MigrationCustom::$function_name($data, $params);
+ return MigrationCustom::$function_name($data, $params);
} else {
return array(
'error' => true,
'message' => "No data found when calling $function_name in URL $url with params: ".print_r($params, 1),
'status_id' => 0
);
- }
+ }
}
-
+
function clean_all_transactions() {
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION);
$sql = "TRUNCATE $table";
Database::query($sql);
}
-
+
/**
* Test a series of hand-crafted transactions
* @param array of parameters that would usually get passed to the web service
@@ -218,12 +218,12 @@ class Migration {
function insert_test_transactions($truncate = false) {
error_log('insert_test_transactions');
//Just for tests
-
+
//Cleaning transaction table
if ($truncate) {
$this->clean_all_transactions();
}
-
+
$transaction_harcoded = array(
array(
//'action' => 'usuario_agregar',
@@ -244,7 +244,7 @@ class Migration {
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
- ),
+ ),
array(
'transaction_id' => 1002,
//'action' => 'usuario_eliminar',
@@ -254,15 +254,15 @@ class Migration {
'branch_id' => 1,
'dest_id' => null,
'status_id' => 0
- ),
+ ),
array(
'transaction_id' => 1003,
//'action' => 'usuario_matricula',
'action' => 4,
- 'item_id' => '95EDA88F-D729-450F-95FF-4A3989244F53', //usuario - Abel
+ 'item_id' => '95EDA88F-D729-450F-95FF-4A3989244F53', //usuario - Abel
'orig_id' => null, //session orig
'dest_id' => 'C3671999-095E-4018-9826-678BAFF595DF', //session dest
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
array(
@@ -272,7 +272,7 @@ class Migration {
'item_id' => 'E2334974-9D55-4BB4-8B57-FCEFBE2510DC',
'orig_id' => null,
'dest_id' => null,
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
array(
@@ -282,7 +282,7 @@ class Migration {
'item_id' => 'E2334974-9D55-4BB4-8B57-FCEFBE2510DC',
'orig_id' => null,
'dest_id' => null,
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
array(
@@ -300,7 +300,7 @@ class Migration {
'item_id' => 'E2334974-9D55-4BB4-8B57-FCEFBE2510DC', //course
'orig_id' => null,
'dest_id' => 'C3671999-095E-4018-9826-678BAFF595DF', //session
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
*/
@@ -311,7 +311,7 @@ class Migration {
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',
'orig_id' => null,
'dest_id' => null,
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
array(
@@ -321,7 +321,7 @@ class Migration {
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',
'orig_id' => '0',
'dest_id' => null,
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
array(
@@ -334,7 +334,7 @@ class Migration {
'dest_id' => null,
'status_id' => 0
),
-
+
/* seems not to be used
array(
//'action' => 'pa_cambiar_aula',
@@ -342,7 +342,7 @@ class Migration {
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',
'orig_id' => '0',
'dest_id' => '',
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),*/
array(
@@ -361,7 +361,7 @@ class Migration {
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',//session id
'orig_id' => '0',
'dest_id' => null,
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
array(
@@ -369,7 +369,7 @@ class Migration {
'item_id' => 'C3671999-095E-4018-9826-678BAFF595DF',//session id
'orig_id' => '0',
'dest_id' => null,
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
array(
@@ -398,17 +398,17 @@ class Migration {
'item_id' => 'E395895A-B480-456F-87F2-36B3A1EBB81C',
'orig_id' => '0',
'dest_id' => null,
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
array(
- //'action' => 'horario_eliminar',
+ //'action' => 'horario_eliminar',
'action' => 14,
'transaction_id' => 1012,
'item_id' => 'E395895A-B480-456F-87F2-36B3A1EBB81C',
'orig_id' => '0',
'dest_id' => null,
- 'branch_id' => 1,
+ 'branch_id' => 1,
'status_id' => 0
),
/*
@@ -441,7 +441,7 @@ class Migration {
),
* */
array(
- //'action' => 'sede_agregar',
+ //'action' => 'sede_agregar',
'action' => 19,
'transaction_id' => 1013,
'item_id' => '7379A7D3-6DC5-42CA-9ED4-97367519F1D9',
@@ -451,7 +451,7 @@ class Migration {
'status_id' => 0
),
array(
- //'action' => 'sede_editar',
+ //'action' => 'sede_editar',
'action' => 21,
'transaction_id' => 1014,
'item_id' => '7379A7D3-6DC5-42CA-9ED4-97367519F1D9',
@@ -471,7 +471,7 @@ class Migration {
'status_id' => 0
),
array(
- //'action' => 'frecuencia_agregar',
+ //'action' => 'frecuencia_agregar',
'action' => 22,
'transaction_id' => 1016,
'item_id' => '0091CD3B-F042-11D7-B338-0050DAB14015',
@@ -531,14 +531,14 @@ class Migration {
'status_id' => 0
),
);
-
+
foreach( $transaction_harcoded as $transaction) {
$transaction['branch_id'] = 2;
if ($transaction['action'] != 21) {
continue;
}
self::add_transaction($transaction);
- }
+ }
}
/**
@@ -548,25 +548,25 @@ class Migration {
*/
static function add_transaction($params) {
//error_log('Requested add_transaction of : '.print_r($params,1));
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION);
if (isset($params['id'])) {
unset($params['id']);
}
- $params['time_update'] = $params['time_insert'] = api_get_utc_datetime();
-
+ $params['time_update'] = $params['time_insert'] = api_get_utc_datetime();
+
$inserted_id = Database::insert($table, $params);
if ($inserted_id) {
//error_log("Transaction added #$inserted_id");
}
- return $inserted_id;
+ return $inserted_id;
}
-
+
/**
* Get all available branches (the migration system supports multiple origin databases, the branch identifies which database it comes from)
* @return array Branches IDs (int)
*/
static function get_branches() {
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION);
$sql = "SELECT DISTINCT branch_id FROM $table ORDER BY branch_id";
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
@@ -580,7 +580,7 @@ class Migration {
4=>array('branch_id' => 5),
);
}
-
+
/**
* Gets transactions in a specific state (for example to get all non-processed transactions) from the Chamilo transactions table
* @param int State ID (0=unprocessed (default), 2=completed)
@@ -588,49 +588,49 @@ class Migration {
* @return array Associative array containing the details of the transactions requested
*/
static function get_transactions($status_id = 0, $branch_id = 0) {
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION);
$branch_id = intval($branch_id);
$status_id = intval($status_id);
-
- $extra_conditions = " AND branch_id = $branch_id ";
+
+ $extra_conditions = " AND branch_id = $branch_id ";
$sql = "SELECT * FROM $table WHERE status_id = $status_id $extra_conditions ORDER BY id ";
$result = Database::query($sql);
return Database::store_result($result, 'ASSOC');
}
-
+
static function get_transaction_by_transaction_id($transaction_id, $branch_id) {
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION);
$transaction_id = intval($transaction_id);
$branch_id = intval($branch_id);
-
+
if (!empty($transaction_id) && !empty($branch_id)) {
$sql = "SELECT * FROM $table WHERE transaction_id = $transaction_id AND branch_id = $branch_id";
$result = Database::query($sql);
if (Database::num_rows($result)) {
- return Database::fetch_array($result, 'ASSOC');
+ return Database::fetch_array($result, 'ASSOC');
}
}
return false;
}
-
+
static function delete_transaction_by_transaction_id($transaction_id, $branch_id) {
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION);
$transaction_id = intval($transaction_id);
$branch_id = intval($branch_id);
-
+
if (!empty($transaction_id) && !empty($branch_id)) {
$sql = "DELETE FROM $table WHERE transaction_id = $transaction_id AND branch_id = $branch_id";
- Database::query($sql);
- }
- }
-
+ Database::query($sql);
+ }
+ }
+
/**
* Gets the latest completed transaction for a specific branch (allows the building of a request to the branch to get new transactions)
* @param int The ID of the branch
* @return int The ID of the latest transaction
*/
static function get_latest_completed_transaction_by_branch($branch_id) {
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_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";
$result = Database::query($sql);
@@ -640,18 +640,18 @@ class Migration {
}
return 0;
}
-
+
/**
* Gets the latest locally-recorded transaction for a specific branch
* @param int The ID of the branch
* @return int The ID of the last transaction registered
*/
static function get_latest_transaction_id_by_branch($branch_id) {
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION);
$branch_id = intval($branch_id);
- $sql = "SELECT transaction_id FROM $table
- WHERE branch_id = $branch_id
- ORDER BY transaction_id DESC
+ $sql = "SELECT transaction_id FROM $table
+ WHERE branch_id = $branch_id
+ ORDER BY transaction_id DESC
LIMIT 1";
$result = Database::query($sql);
if (Database::num_rows($result)) {
@@ -660,7 +660,7 @@ class Migration {
}
return 376012;
}
-
+
/**
* Gets a specific transaction using select parameters
* @param array Select parameters (associative array)
@@ -668,72 +668,72 @@ class Migration {
* @return array Results as requested
*/
static function get_transaction_by_params($params, $type_result = 'all') {
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION);
return Database::select('*', $table, $params, $type_result);
}
-
+
/**
* Updates a transaction using the given query parameters
* @param array Query parameters
* @return bool The result of the transaction row update
- */
+ */
static function update_transaction($params) {
//return false;
- $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION);
+ $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION);
if (empty($params['id'])) {
error_log('No transaction id provided during update_transaction');
return false;
}
$params['time_update'] = api_get_utc_datetime();
error_log("Transaction updated #{$params['id']} with status_id = {$params['status_id']}");
-
+
//Failed - do something else
if ($params['status_id'] == MigrationCustom::TRANSACTION_STATUS_FAILED) {
//event_system($event_type, $event_value_type, $event_value, $datetime = null, $user_id = null, $course_code = null) {
event_system('transaction_error', 'transaction_id', $params['id'], $params['time_update']);
}
-
+
return Database::update($table, $params, array('id = ?' => $params['id']));
}
-
+
/**
* Search for new transactions through a web service call. Automatically insert them in the local transactions table.
* @param array The web service parameters
* @param int the branch id optional
- * @param int An optional transaction ID to start from. Branch id must be selected if you use this option.
+ * @param int An optional transaction ID to start from. Branch id must be selected if you use this option.
* If none provided, fetches the latest transaction available and add + 1
* @return The operation results
*/
function get_transactions_from_webservice($params = array()) {
error_log("get_transactions_from_webservice() function called \n");
-
+
$branch_id = isset($params['branch_id']) ? $params['branch_id'] : null;
$transaction_id = isset($params['transaction_id']) ? $params['transaction_id'] : null;
$number_of_transactions = isset($params['number_of_transactions']) ? $params['number_of_transactions'] : 2;
-
- //Testing transactions
+
+ //Testing transactions
$web_service_params = $this->web_service_connection_info;
-
+
/*$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,'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,'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));
*/
-
+
if (empty($branch_id)) {
$branches = self::get_branches();
} else {
$branches = array('branch_id' => $branch_id);
}
-
+
error_log(count($branches)." branches found \n");
-
+
if (!empty($branches)) {
foreach ($branches as $branch) {
if (!empty($branch_id) && !empty($transaction_id)) {
@@ -747,12 +747,12 @@ class Migration {
'ultimo' => $last_transaction_id,
'cantidad' => isset($number_of_transactions) && !empty($number_of_transactions) ? $number_of_transactions : 2,
'intIdSede' => $branch['branch_id'],
- );
+ );
error_log("Branch #".$branch['branch_id']." - treating $number_of_transactions transaction(s) starting with transaction #$last_transaction_id \n");
MigrationCustom::process_transactions($params, $web_service_params);
}
}
- }
+ }
/**
* Loads a specific set of transactions from the transactions table and executes them
@@ -765,36 +765,36 @@ class Migration {
$branch_id = isset($params['branch_id']) ? $params['branch_id'] : null;
//$transaction_id = isset($params['transaction_id']) ? $params['transaction_id'] : null;
//$number_of_transactions = isset($params['number_of_transactions']) ? $params['number_of_transactions'] : 2;
-
+
//Getting transactions of the migration_transaction table
if (empty($branch_id)) {
$branches = self::get_branches();
} else {
$branches = array('branch_id' => $branch_id);
}
-
+
if (!empty($branches)) {
-
+
error_log(count($branches)." branch(es) found \n");
-
+
foreach ($branches as $branch_info) {
- //Get uncompleted transactions
- $transactions = self::get_transactions(0, $branch_info['branch_id']);
-
+ //Get uncompleted transactions
+ $transactions = self::get_transactions(0, $branch_info['branch_id']);
+
//Getting latest executed transaction
$options = array('where' => array('branch_id = ? and status_id <> ?' => array($branch_info['branch_id'], 0)), 'order' => 'id desc', 'limit' => '1');
- $transaction_info = self::get_transaction_by_params($options, 'first');
+ $transaction_info = self::get_transaction_by_params($options, 'first');
$latest_id_attempt = 1;
- if ($transaction_info) {
- $latest_id = $transaction_info['id'];
+ if ($transaction_info) {
+ $latest_id = $transaction_info['id'];
$latest_id_attempt = $latest_id + 1;
}
-
- $count = count($transactions);
-
+
+ $count = count($transactions);
+
$item = 1;//counter
if (!empty($transactions)) {
-
+
error_log("Branch #".$branch_info['branch_id']." called, $count transaction(s) found starting with transaction #$latest_id_attempt \n");
//Looping transactions
@@ -807,7 +807,7 @@ class Migration {
error_log("\nProcessing transaction #{$transaction['id']} $percentage%");
}
$item++;
-
+
error_log("\nWaiting for transaction #$latest_id_attempt ...");
//Checking "huecos"
@@ -815,9 +815,9 @@ class Migration {
if ($transaction['id'] == $latest_id_attempt) {
$latest_id_attempt++;
} else {
- error_log("Transaction #$latest_id_attempt is missing in branch #{$branch_info['branch_id']} \n");
+ error_log("Transaction #$latest_id_attempt is missing in branch #{$branch_info['branch_id']} \n");
}
- $result = $this->execute_transaction($transaction);
+ $result = $this->execute_transaction($transaction);
error_log($result['message']);
}
}
@@ -837,10 +837,10 @@ class Migration {
}
}
}
-
+
function execute_transaction($transaction_info) {
//Loading function. The action is now numeric, so we call a transaction_1() function, for example
-
+
$validate = MigrationCustom::validate_transaction($transaction_info);
if (isset($validate['error']) && $validate['error']) {
return $validate;
@@ -848,26 +848,26 @@ class Migration {
error_log("\n-----------------------------------------------------------------------");
error_log("Executing transaction ".$transaction_info['id']);
error_log("\n-----------------------------------------------------------------------");
-
+
$function_to_call = "transaction_" . $transaction_info['action'];
if (method_exists('MigrationCustom', $function_to_call)) {
-
+
error_log("\nCalling function MigrationCustom::$function_to_call()");
-
+
$result = MigrationCustom::$function_to_call($transaction_info, $this->web_service_connection_info);
- $result['message'] = "\nFunction reponse: ".$result['message'];
+ $result['message'] = "\nFunction reponse: ".$result['message'];
//error_log('Reponse: '.$result['message']);
if (!empty($transaction_info['id'])) {
- self::update_transaction(array('id' => $transaction_info['id'] , 'status_id' => $result['status_id']));
+ self::update_transaction(array('id' => $transaction_info['id'] , 'status_id' => $result['status_id']));
} else {
- error_log("Cant update transaction, id was not provided");
+ error_log("Cant update transaction, id was not provided");
}
return $result;
} else {
// method does not exist
$error_message = "Function $function_to_call does not exists";
error_log($error_message);
-
+
//Failed
if (!empty($transaction_info['id'])) {
self::update_transaction(array('id' => $transaction_info['id'] , 'status_id' => MigrationCustom::TRANSACTION_STATUS_FAILED));
@@ -875,37 +875,37 @@ class Migration {
return array('message' => $error_message);
}
}
-
- /**
- *
- * @param int Transaction id of the third party
- *
+
+ /**
+ *
+ * @param int Transaction id of the third party
+ *
*/
- function load_transaction_by_third_party_id($transaction_external_id, $branch_id, $forced = false) {
+ function load_transaction_by_third_party_id($transaction_external_id, $branch_id, $forced = false) {
//Asking for 2 transactions by getting 1
-
+
$params = array(
- 'ultimo' => $transaction_external_id,
+ 'ultimo' => $transaction_external_id,
'cantidad' => 1,
'intIdSede' => $branch_id
);
-
+
$result = self::soap_call($this->web_service_connection_info, 'transacciones', $params);
-
- //Hacking webservice default result
+
+ //Hacking webservice default result
if ($result && isset($result[0])) {
//Getting 1 transaction
- $result = $result[0];
-
- $transaction_external_id++;
+ $result = $result[0];
+
+ $transaction_external_id++;
if ($result['idt'] == $transaction_external_id) {
$message = Display::return_message('Transaction id found in third party', 'info');
-
+
//Adding third party transaction to Chamilo
$transaction_result = MigrationCustom::process_transaction($result, null, $forced);
-
+
$transaction_chamilo_info = array();
-
+
if ($transaction_result['error'] == false) {
$chamilo_transaction_id = $transaction_result['id'];
$message .= Display::return_message($transaction_result['message'], 'info');
@@ -914,20 +914,20 @@ class Migration {
$transaction_chamilo_info = $transaction_chamilo_info[$chamilo_transaction_id];
} else {
$transaction_chamilo_info = null;
- }
+ }
} else {
$message .= Display::return_message("Transaction NOT added to Chamilo. {$transaction_result['message']}", 'warning');
- //$transaction_chamilo_info = MigrationCustom::process_transaction($result, false);
+ //$transaction_chamilo_info = MigrationCustom::process_transaction($result, false);
}
-
+
if (!empty($transaction_chamilo_info)) {
$transaction_result = $this->execute_transaction($transaction_chamilo_info);
if ($transaction_result) {
$message .= Display::page_subheader("Transaction result:");
$message .= nl2br($transaction_result['message']);
$message .= "
";
-
- if (isset($transaction_result['entity']) && !empty($transaction_result['entity'])) {
+
+ if (isset($transaction_result['entity']) && !empty($transaction_result['entity'])) {
$message .= Display::page_subheader2("Entity {$transaction_result['entity']} before:");
$message .= "
".print_r($transaction_result['before'], 1).""; $message .= "
".print_r($transaction_result['after'], 1).""; $message .= "
".print_r($transaction_chamilo_info, true)."". Display::page_subheader3("Webservice transaction reponse:")."
".print_r($result, true)."", ); } } - + return array( 'message' => Display::return_message("Transaction NOT found in third party", 'warning'), //'raw_reponse' => print_r($result, true) ); } - + /** * Prepares the relationship between two fields (one from the original database and on from the destination/local database) * @param array List of fields that must be matched ('fields_match' => array(0=>array('orig'=>'...','dest'=>'...',...))) @@ -1002,7 +1002,7 @@ class Migration { } $extra_fields_to_insert = array(); global $data_list; - + foreach ($table['fields_match'] as $id_field => $details) { //if ($table['dest_table'] == 'session') {error_log('Processing field '.$details['orig']);} $params = array(); @@ -1043,7 +1043,7 @@ class Migration { $options = $extra_field['options']; $field_type = $extra_field['field_type']; //if ($table['dest_table'] == 'session') {error_log('Field orid: '.$details['orig']);} - + if (!empty($options)) { //if ($table['dest_table'] == 'session') {error_log('Options not empty');} if (!is_array($options)) { $options = array($options); } @@ -1080,16 +1080,16 @@ class Migration { unset($extra_field); } //if ($table['dest_table']=='session') { error_log('Params: '.print_r($params,1)); } - // If a dest_func entry has been defind, use this entry as the main + // If a dest_func entry has been defind, use this entry as the main // operation to execute when inserting the item if (!empty($table['dest_func'])) { - //error_log('Calling '.$table['dest_func'].' on data recovered: '.print_r($dest_row, 1)); + //error_log('Calling '.$table['dest_func'].' on data recovered: '.print_r($dest_row, 1)); $dest_row['return_item_if_already_exists'] = true; $item_result = call_user_func_array($table['dest_func'], array($dest_row, $data_list)); /* if (isset($table['show_in_error_log']) && $table['show_in_error_log'] == false) { - + } else { //error_log('Result of calling ' . $table['dest_func'] . ': ' . print_r($item_result, 1)); } @@ -1100,7 +1100,7 @@ class Migration { case 'course': //Saving courses in array if ($item_result) { - //$data_list['courses'][$dest_row['uidIdCurso']] = $item_result; + //$data_list['courses'][$dest_row['uidIdCurso']] = $item_result; } else { error_log('Course Not FOUND'); error_log(print_r($item_result, 1)); @@ -1116,7 +1116,7 @@ class Migration { //$data_list['users_alumno'][$dest_row['uidIdAlumno']]['extra'] = $item_result; } if (isset($dest_row['uidIdEmpleado'])) { - //print_r($dest_row['uidIdEmpleado']);exit; + //print_r($dest_row['uidIdEmpleado']);exit; //$data_list['users_empleado'][$dest_row['uidIdEmpleado']]['extra'] = $item_result; } } else { @@ -1126,7 +1126,7 @@ class Migration { } break; case 'session': - //$data_list['sessions'][$dest_row['uidIdPrograma']] = $item_result; + //$data_list['sessions'][$dest_row['uidIdPrograma']] = $item_result; $handler_id = $item_result; //session_id break; } @@ -1148,8 +1148,8 @@ class Migration { } /** - * Helper function to create extra fields in the Chamilo database. If the - * extra field aleady exists, then just return the ID of this field. If + * Helper function to create extra fields in the Chamilo database. If the + * extra field aleady exists, then just return the ID of this field. If * options are provided ('options' sub-array), then options are inserted in * the corresponding x_field_options table. * @param Array An array containing an 'extra_fields' entry with details about the required extra fields @@ -1169,7 +1169,7 @@ class Migration { $selected_fields = self::prepare_field_match($options); - //Adding options. This is only processed if the corresponding + //Adding options. This is only processed if the corresponding // extra_field has an 'options' sub-aray defined if (!empty($options)) { $extra_field_option_obj = new ExtraFieldOption($table['dest_table']); @@ -1189,7 +1189,7 @@ class Migration { $extra_fields[$table['dest_table']]['extra_field_' . $extra_field['field_variable']]['options'][] = $data_to_insert; $extra_fields[$table['dest_table']]['extra_field_' . $extra_field['field_variable']]['field_type'] = $extra_field['field_type']; } - //$extra_fields[$table['dest_table']]['extra_field_'.$extra_field['field_variable']]['selected_option'] = + //$extra_fields[$table['dest_table']]['extra_field_'.$extra_field['field_variable']]['selected_option'] = //error_log('$data: ' . print_r($data_to_insert, 1)); } } else { diff --git a/tests/migrate/migration.custom.class.php b/tests/migrate/migration.custom.class.php index 355315e006..5b9474e88e 100644 --- a/tests/migrate/migration.custom.class.php +++ b/tests/migrate/migration.custom.class.php @@ -11,12 +11,12 @@ * during the migration */ class MigrationCustom { - + const default_admin_id = 1; const TRANSACTION_STATUS_TO_BE_EXECUTED = 1; const TRANSACTION_STATUS_SUCCESSFUL = 2; const TRANSACTION_STATUS_DEPRECATED = 3; //?? - const TRANSACTION_STATUS_FAILED = 4; + const TRANSACTION_STATUS_FAILED = 4; /** * Types of transaction operations read from the external databases */ @@ -50,12 +50,12 @@ class MigrationCustom { const TRANSACTION_TYPE_ADD_FASE = 28; const TRANSACTION_TYPE_DEL_FASE = 29; const TRANSACTION_TYPE_EDIT_FASE = 30; - + static function get_transaction_status_list() { - $table = Database::get_main_table(TABLE_MIGRATION_TRANSACTION_STATUS); + $table = Database::get_main_table(TABLE_BRANCH_TRANSACTION_STATUS); return Database::select("*", $table); } - + /** * The only required method is the 'none' method, which will not trigger * any process at all @@ -65,18 +65,18 @@ class MigrationCustom { static function none($data) { return $data; } - + static function join_horario($data, &$omigrate, $row_data) { return '('.$row_data['chrIdHorario'].') '.$row_data['chrHoraInicial'].' '.$row_data['chrHoraFinal']; } - + /** - * Converts 2008-02-01 12:20:20.540 to 2008-02-01 12:20:20 + * Converts 2008-02-01 12:20:20.540 to 2008-02-01 12:20:20 */ 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); @@ -89,7 +89,7 @@ class MigrationCustom { * @return string SQL select string to include in the final select */ static function sql_alter_unhash_50($field) { - $as_field = explode('.', $field); + $as_field = explode('.', $field); if (isset($as_field[1])) { $as_field = $as_field[1]; } else { @@ -97,27 +97,27 @@ class MigrationCustom { } return " cast( $field as varchar(50)) as $as_field "; } - + static function clean_utf8($value) { - return utf8_encode($value); + return utf8_encode($value); } static function make_sha1($value) { return sha1($value); } - + static function add_meses_label_to_extra_field_fase($value, $data, $row_data) { $label = 'meses'; if ($row_data['chrOrdenFase'] == 1) { - $label = 'mes'; + $label = 'mes'; } $value = $row_data['vchNombreFase'] .' ['.trim($row_data['chrOrdenFase']).' '.$label.']'; return self::clean_utf8($value); } - + static function clean_session_name($value, &$omigrate, $row_data) { - return self::clean_utf8($row_data['session_name']); + return self::clean_utf8($row_data['session_name']); } - + static function get_real_course_code($data, &$omigrate=null) { if (is_array($omigrate) && $omigrate['boost_courses']) { if (isset($omigrate['courses'][$data])) { @@ -125,29 +125,29 @@ class MigrationCustom { } } $extra_field = new ExtraFieldValue('course'); - $values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdCurso', $data); + $values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdCurso', $data); if ($values) { return $values['course_code']; } else { error_log("Course ".print_r($data,1)." not found in DB"); } } - - static function get_session_id_by_programa_id($uidIdPrograma, &$omigrate=null) { + + static function get_session_id_by_programa_id($uidIdPrograma, &$omigrate=null) { if (is_array($omigrate) && $omigrate['boost_sessions']) { if (isset($omigrate['sessions'][$uidIdPrograma])) { return $omigrate['sessions'][$uidIdPrograma]; } } $extra_field = new ExtraFieldValue('session'); - $values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdPrograma', $uidIdPrograma); + $values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdPrograma', $uidIdPrograma); if ($values) { return $values['session_id']; } else { //error_log("session id not found in DB"); - } + } } - + /* Not used */ static function get_user_id_by_persona_id($uidIdPersona, &$omigrate=null) { if (is_array($omigrate) && $omigrate['boost_users']) { @@ -157,16 +157,16 @@ class MigrationCustom { } //error_log('get_user_id_by_persona_id'); $extra_field = new ExtraFieldValue('user'); - $values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdPersona', $uidIdPersona); + $values = $extra_field->get_item_id_from_field_variable_and_field_value('uidIdPersona', $uidIdPersona); if ($values) { return $values['user_id']; } else { return 0; } } - + static function get_real_teacher_id($uidIdPersona, &$omigrate=null) { - $default_teacher_id = self::default_admin_id; + $default_teacher_id = self::default_admin_id; if (empty($uidIdPersona)) { //error_log('No teacher provided'); return $default_teacher_id; @@ -176,19 +176,19 @@ class MigrationCustom { return $omigrate['users'][$uidIdPersona]; } } - + $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; - } + return $default_teacher_id; + } } - + /** - * Manage the user creation, including checking if the user hasn't been + * Manage the user creation, including checking if the user hasn't been * created previously * @param array User data * @param object List of migrated things @@ -198,37 +198,37 @@ class MigrationCustom { //error_log('In create_user, receiving '.print_r($data,1)); if (empty($data['uidIdPersona'])) { error_log('User does not have a uidIdPersona'); - error_log(print_r($data, 1)); + error_log(print_r($data, 1)); exit; } - + $data['uidIdPersona'] = strtoupper($data['uidIdPersona']); - + $data['status'] = STUDENT; if (isset($data['uidIdEmpleado'])) { $data['status'] = COURSEMANAGER; - } - + } + if (!isset($data['username']) || empty($data['username'])) { - $data['firstname'] = (string) trim($data['firstname']); - $data['lastname'] = (string) trim($data['lastname']); - + $data['firstname'] = (string) trim($data['firstname']); + $data['lastname'] = (string) trim($data['lastname']); + if (empty($data['firstname']) && empty($data['lastname'])) { $wanted_user_name = UserManager::purify_username($data['uidIdPersona']); - //$wanted_user_name = UserManager::create_unique_username(null, null); + //$wanted_user_name = UserManager::create_unique_username(null, null); } else { $wanted_user_name = UserManager::create_username($data['firstname'], $data['lastname']); } - + $extra_data = UserManager::get_extra_user_data_by_value('uidIdPersona', $data['uidIdPersona']); - + if ($extra_data) { $user_info = api_get_user_info($extra_data[0]); //print_r($extra_data); //error_log("User_already_added - {$user_info['user_id']} - {$user_info['username']} - {$user_info['firstname']} - {$user_info['lastname']}"); return $user_info; } - + if (UserManager::is_username_available($wanted_user_name)) { $data['username'] = $wanted_user_name; error_log("username available $wanted_user_name"); @@ -236,21 +236,21 @@ class MigrationCustom { //the user already exists? $user_info = UserManager::get_user_info_simple($wanted_user_name); $user_persona = UserManager::get_extra_user_data_by_field($user_info['user_id'], 'uidIdPersona'); - + if (isset($user_persona['uidIdPersona']) && $data['uidIdPersona'] == $user_persona['uidIdPersona']) { - error_log("Skip user already added: {$user_info['username']}"); + error_log("Skip user already added: {$user_info['username']}"); return $user_info; } else { - error_log("Homonym - wanted_username: $wanted_user_name - uidIdPersona: {$user_persona['uidIdPersona']} - username: {$user_info['username']}"); + error_log("Homonym - wanted_username: $wanted_user_name - uidIdPersona: {$user_persona['uidIdPersona']} - username: {$user_info['username']}"); //print_r($data); - //The user has the same firstname and lastname but it has another uiIdPersona could by an homonym - $data['username'] = UserManager::create_unique_username($data['firstname'], $data['lastname']); + //The user has the same firstname and lastname but it has another uiIdPersona could by an homonym + $data['username'] = UserManager::create_unique_username($data['firstname'], $data['lastname']); error_log("homonym username created ". $data['username']); } } - + if (empty($data['username'])) { - //Last chance to have a nice username + //Last chance to have a nice username if (empty($data['firstname']) && empty($data['lastname'])) { $data['username'] = UserManager::create_unique_username(uniqid()); error_log("username empty 1". $data['username']); @@ -266,33 +266,33 @@ class MigrationCustom { //the user already exists? $user_info = UserManager::get_user_info_simple($data['username']); $user_persona = UserManager::get_extra_user_data_by_field($user_info['user_id'], 'uidIdPersona'); - - + + if (isset($user_persona['uidIdPersona']) && (string)$data['uidIdPersona'] == (string)$user_persona['uidIdPersona']) { - //error_log("2 Skip user already added: {$user_info['username']}"); + //error_log("2 Skip user already added: {$user_info['username']}"); return $user_info; } else { //print_r($user_persona); - //error_log("2 homonym - wanted_username: {$data['username']} - uidIdPersona: {$user_persona['uidIdPersona']} - username: {$user_info['username']}"); + //error_log("2 homonym - wanted_username: {$data['username']} - uidIdPersona: {$user_persona['uidIdPersona']} - username: {$user_info['username']}"); //print_r($data); - //The user has the same firstname and lastname but it has another uiIdPersona could by an homonym - $data['username'] = UserManager::create_unique_username($data['firstname'], $data['lastname']); - //error_log("2 homonym username created ". $data['username']); + //The user has the same firstname and lastname but it has another uiIdPersona could by an homonym + $data['username'] = UserManager::create_unique_username($data['firstname'], $data['lastname']); + //error_log("2 homonym username created ". $data['username']); } } } - + if (empty($data['username'])) { error_log('No Username provided'); error_log(print_r($data, 1)); exit; } - $id_persona = $data['uidIdPersona']; + $id_persona = $data['uidIdPersona']; unset($data['uidIdPersona']); unset($data['uidIdAlumno']); unset($data['uidIdEmpleado']); $data['encrypt_method'] = 'sha1'; - + global $api_failureList; $api_failureList = array(); //error_log(print_r($data, 1)); @@ -308,7 +308,7 @@ class MigrationCustom { UserManager::update_extra_field_value($user_info['user_id'], 'uidIdPersona', $id_persona); return $user_info; } - + /** * Manages the course creation based on the rules in db_matches.php */ @@ -316,11 +316,11 @@ class MigrationCustom { //error_log('In create_course, received '.print_r($data,1)); //Fixes wrong wanted codes $data['wanted_code'] = str_replace(array('-', '_'), '000', $data['wanted_code']); - + //Specific to customer, set the default language to English $data['language'] = 'english'; $data['visibility'] = COURSE_VISIBILITY_REGISTERED; - + //Creates an evaluation $data['create_gradebook_evaluation'] = false; /* @@ -330,13 +330,13 @@ class MigrationCustom { 'weight' => '20', 'max' => '20' );*/ - $course_data = CourseManager::create_course($data); + $course_data = CourseManager::create_course($data); if (is_array($omigrate) && isset($omigrate) && $omigrate['boost_courses']) { $omigrate['courses'][$data['uidIdCurso']] = $course_data['code']; } return $course_data; } - + /** * Manages the session creation, based on data provided by the rules * in db_matches.php @@ -344,7 +344,7 @@ class MigrationCustom { */ static function create_session($data, &$omigrate) { //Hack to add the default gradebook course to the session course - $data['create_gradebook_evaluation'] = true; + $data['create_gradebook_evaluation'] = true; /*$data['gradebook_params'] = array( 'name' => 'General evaluation', 'user_id' => self::default_admin_id, @@ -353,7 +353,7 @@ class MigrationCustom { );*/ self::fix_access_dates($data); - // Here the $data variable has $data['course_code'] that will be added + // Here the $data variable has $data['course_code'] that will be added // when creating the session // If session already exists, it will return the existing session id $session_id = SessionManager::add($data, true); @@ -367,7 +367,7 @@ class MigrationCustom { } return $session_id; } - + /** * Assigns a user to a session based on rules in db_matches.php */ @@ -378,7 +378,7 @@ class MigrationCustom { if (isset($omigrate['sessions'][$data['uidIdPrograma']])) { $session_id = $omigrate['sessions'][$data['uidIdPrograma']]; } - } + } if (empty($session_id)) { $extra_field_value = new ExtraFieldValue('session'); $result = $extra_field_value->get_item_id_from_field_variable_and_field_value('uidIdPrograma', $data['uidIdPrograma']); @@ -387,7 +387,7 @@ class MigrationCustom { $session_id = $result['session_id']; } } - + if (is_array($omigrate) && $omigrate['boost_users']) { if (isset($omigrate['users'][$data['uidIdPersona']])) { $user_id = $omigrate['users'][$data['uidIdPersona']]; @@ -397,61 +397,61 @@ class MigrationCustom { $extra_field_value = new ExtraFieldValue('user'); $result = $extra_field_value->get_item_id_from_field_variable_and_field_value('uidIdPersona', $data['uidIdPersona']); //error_log('data[uidIdPersona] '.$data['uidIdPersona'].' returned $result[user_id]: '.$result['user_id']); - if ($result && $result['user_id']) { - $user_id = $result['user_id']; + if ($result && $result['user_id']) { + $user_id = $result['user_id']; } } - - if (!empty($session_id) && !empty($user_id)) { + + if (!empty($session_id) && !empty($user_id)) { //error_log('Called: add_user_to_session - Subscribing: session_id: '.$session_id. ' user_id: '.$user_id); - SessionManager::suscribe_users_to_session($session_id, array($user_id), SESSION_VISIBLE_READ_ONLY, false, false); + SessionManager::suscribe_users_to_session($session_id, array($user_id), SESSION_VISIBLE_READ_ONLY, false, false); //exit; - } else { - //error_log('Called: add_user_to_session - No idPrograma: '.$data['uidIdPrograma'].' - No uidIdPersona: '.$data['uidIdPersona']); - } + } else { + //error_log('Called: add_user_to_session - No idPrograma: '.$data['uidIdPrograma'].' - No uidIdPersona: '.$data['uidIdPersona']); + } } - - static function create_attendance($data) { + + static function create_attendance($data) { error_log('create_attendance'); $session_id = $data['session_id']; $user_id = $data['user_id']; - + if (!empty($session_id) && !empty($user_id)) { - $attendance = new Attendance(); + $attendance = new Attendance(); $course_list = SessionManager::get_course_list_by_session_id($session_id); $attendance_id = null; - + if (!empty($course_list)) { $course = current($course_list); - + //Creating attendance if (isset($course['code'])) { $course_info = api_get_course_info($course['code']); - + $attendance->set_course_id($course_info['code']); $attendance->set_course_int_id($course_info['real_id']); $attendance->set_session_id($session_id); - $attendance_list = $attendance->get_attendances_list($course_info['real_id'], $session_id); + $attendance_list = $attendance->get_attendances_list($course_info['real_id'], $session_id); if (empty($attendance_list)) { $attendance->set_name('Asistencia'); $attendance->set_description(''); //$attendance->set_attendance_qualify_title($_POST['attendance_qualify_title']); //$attendance->set_attendance_weight($_POST['attendance_weight']); - $link_to_gradebook = false; + $link_to_gradebook = false; //$attendance->category_id = $_POST['category_id']; - $attendance_id = $attendance->attendance_add($link_to_gradebook, self::default_admin_id); + $attendance_id = $attendance->attendance_add($link_to_gradebook, self::default_admin_id); error_log("Attendance added course code: {$course['code']} - session_id: $session_id"); - //only 1 course per session + //only 1 course per session } else { - $attendance_data = current($attendance_list); + $attendance_data = current($attendance_list); $attendance_id = $attendance_data['id']; error_log("Attendance found in attendance_id = $attendance_id - course code: {$course['code']} - session_id: $session_id"); } - + if ($attendance_id) { //Attendance date exists? - $cal_info = $attendance->get_attendance_calendar_data_by_date($attendance_id, $data['fecha']); + $cal_info = $attendance->get_attendance_calendar_data_by_date($attendance_id, $data['fecha']); if ($cal_info && isset($cal_info['id'])) { $cal_id = $cal_info['id']; } else { @@ -463,7 +463,7 @@ class MigrationCustom { //Adding presence for the user (by default everybody is present) $users_present = array($user_id); $attendance->attendance_sheet_add($cal_id, $users_present, $attendance_id, false, false); - error_log("Adding calendar to user: $user_id to calendar: $cal_id"); + error_log("Adding calendar to user: $user_id to calendar: $cal_id"); } else { error_log('No attendance_id created'); } @@ -475,56 +475,56 @@ class MigrationCustom { error_log("Missing data: session: $session_id - user_id: $user_id"); } } - + static function create_thematic($data) { error_log('create_thematic'); $session_id = $data['session_id']; - + if (!empty($session_id)) { $course_list = SessionManager::get_course_list_by_session_id($session_id); - + if (!empty($course_list)) { $course_data = current($course_list); $course_info = api_get_course_info($course_data['code']); - + if (!empty($course_data)) { $thematic = new Thematic(); $thematic->set_course_int_id($course_info['real_id']); - $thematic->set_session_id($session_id); + $thematic->set_session_id($session_id); $thematic_info = $thematic->get_thematic_by_title($data['thematic']); - + if (empty($thematic_info)) { $thematic->set_thematic_attributes(null, $data['thematic'], null, $session_id); $thematic_id = $thematic->thematic_save(); error_log("Thematic added to course code: {$course_info['code']} - session_id: $session_id"); } else { - $thematic_id = isset($thematic_info['id']) ? $thematic_info['id'] : null; + $thematic_id = isset($thematic_info['id']) ? $thematic_info['id'] : null; error_log("Thematic id #$thematic_id found in course: {$course_info['code']} - session_id: $session_id"); } - - if ($thematic_id) { + + if ($thematic_id) { $thematic->set_thematic_plan_attributes($thematic_id, $data['thematic_plan'], null, 6); $thematic->thematic_plan_save(); error_log("Saving plan attributes: {$data['thematic_plan']}"); } error_log("Adding thematic id : $thematic_id to session: $session_id to course: {$course_info['code']} real_id: {$course_info['real_id']}"); - + if ($thematic_id) { error_log("Thematic saved: $thematic_id"); } else { error_log("Thematic NOT saved"); } } - + if ($course_info['code'] != 'B05') { //exit; } } else { - error_log("No courses in session $session_id "); + error_log("No courses in session $session_id "); } - } + } } - + static function add_evaluation_type($params) { $table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_EVALUATION_TYPE); if (!empty($params['name']) && !empty($params['external_id'])) { @@ -532,25 +532,25 @@ class MigrationCustom { unset($params['return_item_if_already_exists']); } Database::insert($table, $params); - } + } } - + static function get_evaluation_type($external_id) { $table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_EVALUATION_TYPE); $external_id = intval($external_id); $sql = "SELECT * FROM $table WHERE external_id = $external_id"; - $result = Database::query($sql); + $result = Database::query($sql); if (Database::num_rows($result)) { $result = Database::fetch_array($result, 'ASSOC'); return $result['id']; } return false; } - + static function create_gradebook_evaluation($data){ error_log('create_gradebook_evaluation'); $session_id = isset($data['session_id']) ? $data['session_id'] : null; - + if (!empty($session_id)) { $course_list = SessionManager::get_course_list_by_session_id($session_id); if (!empty($course_list)) { @@ -559,50 +559,50 @@ class MigrationCustom { //Get gradebook $gradebook = new Gradebook(); $gradebook = $gradebook->get_first(array('where' => array('course_code = ? AND session_id = ?' => array($course_data['code'], $session_id)))); - error_log("Looking gradebook in course code: {$course_data['code']} - session_id: $session_id"); - if (!empty($gradebook)) { + error_log("Looking gradebook in course code: {$course_data['code']} - session_id: $session_id"); + if (!empty($gradebook)) { //error_log("Gradebook exists {$gradebook['id']}"); //Check if gradebook exists - $eval = new Evaluation(); + $eval = new Evaluation(); $evals_found = $eval->load(null, null, $course_data['code'], null, null, null, $data['gradebook_description']); - - if (empty($evals_found)) { + + if (empty($evals_found)) { $eval->set_name($data['gradebook_description']); $eval->set_description($data['gradebook_description']); $eval->set_evaluation_type_id($data['gradebook_evaluation_type_id']); $eval->set_user_id(self::default_admin_id); - $eval->set_course_code($course_data['code']); + $eval->set_course_code($course_data['code']); $eval->set_category_id($gradebook['id']); //harcoded values - $eval->set_weight(20); + $eval->set_weight(20); $eval->set_max(20); $eval->set_visible(1); $eval->add(); error_log("Gradebook evaluation was created!!"); } else { error_log("Gradebook evaluation was already created :( "); - } + } } else { error_log("Gradebook does not exists"); - } + } } else { error_log("Something is wrong with the course "); - } + } } else { - error_log("NO course found for session id: $session_id"); + error_log("NO course found for session id: $session_id"); } - + } else { error_log("NO session id found: $session_id"); - } + } } - + static function add_gradebook_result($data) { error_log('add_gradebook_result'); $session_id = isset($data['session_id']) ? $data['session_id'] : null; - $user_id = isset($data['user_id']) ? $data['user_id'] : null; - + $user_id = isset($data['user_id']) ? $data['user_id'] : null; + if (!empty($session_id) && !empty($user_id)) { $course_list = SessionManager::get_course_list_by_session_id($session_id); if (!empty($course_list)) { @@ -611,20 +611,20 @@ class MigrationCustom { //Get gradebook $gradebook = new Gradebook(); $gradebook = $gradebook->get_first(array('where' => array('course_code = ? AND session_id = ?' => array($course_data['code'], $session_id)))); - error_log("Looking gradebook in course code: {$course_data['code']} - session_id: $session_id, user_id: $user_id"); - if (!empty($gradebook)) { + error_log("Looking gradebook in course code: {$course_data['code']} - session_id: $session_id, user_id: $user_id"); + if (!empty($gradebook)) { error_log("Gradebook exists: {$gradebook['id']}"); - + //Check if gradebook exists - $eval = new Evaluation(); + $eval = new Evaluation(); $evals_found = $eval->load(null, null, null, $gradebook['id'], null, null); - - if (!empty($evals_found)) { + + if (!empty($evals_found)) { $evaluation = current($evals_found); $eval_id = $evaluation->get_id(); - - //Eval found - $res = new Result(); + + //Eval found + $res = new Result(); $check_result = Result :: load (null, $user_id, $eval_id); if (empty($check_result)) { $res->set_evaluation_id($eval_id); @@ -641,27 +641,27 @@ class MigrationCustom { } } else { error_log("Gradebook does not exists"); - } + } } else { error_log("Something is wrong with the course "); - } + } } else { - error_log("NO course found for session id: $session_id"); + error_log("NO course found for session id: $session_id"); } - + } else { error_log("NO session id found: $session_id"); } } - + static function add_gradebook_result_with_evaluation($data) { error_log('add_gradebook_result_with_evaluation'); $session_id = isset($data['session_id']) ? $data['session_id'] : null; $user_id = isset($data['user_id']) ? $data['user_id'] : null; - + //Default evaluation title $title = 'Evaluación General'; - + if (!empty($session_id) && !empty($user_id)) { $course_list = SessionManager::get_course_list_by_session_id($session_id); if (!empty($course_list)) { @@ -670,39 +670,39 @@ class MigrationCustom { //Get gradebook $gradebook = new Gradebook(); $gradebook = $gradebook->get_first(array('where' => array('course_code = ? AND session_id = ?' => array($course_data['code'], $session_id)))); - error_log("Looking gradebook in course code: {$course_data['code']} - session_id: $session_id, user_id: $user_id"); - if (!empty($gradebook)) { + error_log("Looking gradebook in course code: {$course_data['code']} - session_id: $session_id, user_id: $user_id"); + if (!empty($gradebook)) { error_log("Gradebook exists: {$gradebook['id']}"); - - //Creates + + //Creates $eval = new Evaluation(); $evals_found = $eval->load(null, null, $course_data['code'], $gradebook['id'], null, null, $title); - + if (empty($evals_found)) { - $eval->set_name($title); + $eval->set_name($title); //$eval->set_evaluation_type_id($data['gradebook_evaluation_type_id']); $eval->set_user_id(self::default_admin_id); - $eval->set_course_code($course_data['code']); + $eval->set_course_code($course_data['code']); $eval->set_category_id($gradebook['id']); //harcoded values - $eval->set_weight(20); + $eval->set_weight(20); $eval->set_max(20); $eval->set_visible(1); $eval->add(); error_log("Gradebook evaluation was created!!"); $eval_id = $eval->get_id(); - error_log("eval id created: $eval_id"); + error_log("eval id created: $eval_id"); } else { $eval = current($evals_found); error_log("Gradebook evaluation already exists "); $eval_id = $eval->get_id(); - error_log("eval id loaded : $eval_id"); + error_log("eval id loaded : $eval_id"); } - + if ($eval_id) { $res = new Result(); - //Check if already exists + //Check if already exists $check_result = Result :: load (null, $user_id, $eval_id); if (empty($check_result)) { $res->set_evaluation_id($eval_id); @@ -713,38 +713,38 @@ class MigrationCustom { error_log("Result Added :)"); } else { error_log("Result already added "); - } + } } else { error_log("Evaluation not detected"); - } + } } else { error_log("Gradebook does not exists"); - } + } } else { error_log("Something is wrong with the course "); - } + } } else { - error_log("NO course found for session id: $session_id"); - } + error_log("NO course found for session id: $session_id"); + } } else { error_log("NO session id found: $session_id"); } } - - + + /* Transaction methods */ - + //añadir usuario: usuario_agregar UID //const TRANSACTION_TYPE_ADD_USER = 1; static function transaction_1($data, $web_service_details) { $uidIdPersonaId = $data['item_id']; - //Add user call the webservice + //Add user call the webservice $user_info = Migration::soap_call($web_service_details, 'usuarioDetalles', array('intIdSede'=> $data['branch_id'], 'uididpersona' => $uidIdPersonaId)); if ($user_info['error'] == false) { global $api_failureList; unset($user_info['error']); - $chamilo_user_info = UserManager::add($user_info); - + $chamilo_user_info = UserManager::add($user_info); + if ($chamilo_user_info && $chamilo_user_info['user_id']) { $chamilo_user_info = api_get_user_info($chamilo_user_info['user_id'], false, false, true); return array( @@ -762,16 +762,16 @@ class MigrationCustom { } } else { return $user_info; - } + } } - + //eliminar usuario usuario_eliminar UID //const TRANSACTION_TYPE_DEL_USER = 2; static function transaction_2($data) { - $uidIdPersonaId = strtoupper($data['item_id']); + $uidIdPersonaId = strtoupper($data['item_id']); $user_id = self::get_user_id_by_persona_id($uidIdPersonaId); if ($user_id) { - $chamilo_user_info_before = api_get_user_info($user_id, false, false, true); + $chamilo_user_info_before = api_get_user_info($user_id, false, false, true); $result = UserManager::delete_user($user_id); $chamilo_user_info = api_get_user_info($user_id, false, false, true); if ($result) { @@ -795,14 +795,14 @@ class MigrationCustom { ); } } - + //editar detalles de usuario (nombre/correo/contraseña) usuario_editar UID //const TRANSACTION_TYPE_EDIT_USER = 3; static function transaction_3($data, $web_service_details) { - $uidIdPersonaId = strtoupper($data['item_id']); + $uidIdPersonaId = strtoupper($data['item_id']); $user_id = self::get_user_id_by_persona_id($uidIdPersonaId); - if ($user_id) { - $user_info = Migration::soap_call($web_service_details, 'usuarioDetalles', array('intIdSede'=> $data['branch_id'], 'uididpersona' => $uidIdPersonaId)); + if ($user_id) { + $user_info = Migration::soap_call($web_service_details, 'usuarioDetalles', array('intIdSede'=> $data['branch_id'], 'uididpersona' => $uidIdPersonaId)); if ($user_info['error'] == false) { unset($user_info['error']); //Edit user @@ -827,7 +827,7 @@ class MigrationCustom { ); } } - + //cambiar usuario de progr. académ. (de A a B, de A a nada, de nada a A) (como estudiante o profesor) usuario_matricula UID ORIG DEST //const TRANSACTION_TYPE_SUB_USER = 4; //subscribe user to a session static function transaction_4($data) { @@ -835,60 +835,60 @@ class MigrationCustom { $uidIdPrograma = $data['orig_id']; $uidIdProgramaDestination = $data['dest_id']; $user_id = self::get_user_id_by_persona_id($uidIdPersona); - + if (empty($user_id)) { return array( 'message' => "User does not exists in DB: $uidIdPersona", 'status_id' => self::TRANSACTION_STATUS_FAILED ); } - + //Move A to B if (!empty($uidIdPrograma) && !empty($uidIdProgramaDestination)) { $session_id = self::get_session_id_by_programa_id($uidIdPrograma); $destination_session_id = self::get_session_id_by_programa_id($uidIdProgramaDestination); - + if (!empty($session_id) && !empty($destination_session_id)) { - + $before1 = SessionManager::get_user_status_in_session($session_id, $user_id); $before2 = SessionManager::get_user_status_in_session($destination_session_id, $user_id); - + /*SessionManager::unsubscribe_user_from_session($session_id, $user_id); SessionManager::suscribe_users_to_session($destination_session_id, array($user_id), SESSION_VISIBLE_READ_ONLY, false, false);*/ - + //Not sure what reason use /* $extra_field_value = new ExtraFieldValue('session'); - + SESSION_CHANGE_USER_REASON_SCHEDULE = 1; SESSION_CHANGE_USER_REASON_CLASSROOM = 2; SESSION_CHANGE_USER_REASON_LOCATION = 3; SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION = 4; - + $extra_field_value->compare_item_values($session_id, $destination_session_id, 'aula'); - + SessionManager::compare_extra_field($session_id, $session_id, 'aula'); SessionManager::detect_reason_by_extra_field($session_id, 'sede'); SessionManager::detect_reason_by_extra_field($session_id, 'horario'); SessionManager::detect_reason_by_extra_field($session_id, 'aula');*/ - + $reason_id = SESSION_CHANGE_USER_REASON_SCHEDULE; SessionManager::change_user_session($user_id, $session_id, $destination_session_id, $reason_id); - + $befores = array($before1, $before2); - - $message = "Move Session A to Session B"; - return self::check_if_user_is_subscribe_to_session($user_id, $destination_session_id, $message, $befores); + + $message = "Move Session A to Session B"; + return self::check_if_user_is_subscribe_to_session($user_id, $destination_session_id, $message, $befores); } else { - return array( + return array( 'message' => "Session ids were not correctly setup session_id 1: $session_id Session id 2 $uidIdProgramaDestination - Move Session A to Session B", 'status_id' => self::TRANSACTION_STATUS_FAILED ); } } - + //Move A to empty - if (!empty($uidIdPrograma) && empty($uidIdProgramaDestination)) { + if (!empty($uidIdPrograma) && empty($uidIdProgramaDestination)) { $session_id = self::get_session_id_by_programa_id($uidIdPrograma); if (!empty($session_id)) { $before = SessionManager::get_user_status_in_session($session_id, $user_id); @@ -903,11 +903,11 @@ class MigrationCustom { ); } } - + //Move empty to A if (empty($uidIdPrograma) && !empty($uidIdProgramaDestination)) { $session_id = self::get_session_id_by_programa_id($uidIdProgramaDestination); - if (!empty($session_id)) { + if (!empty($session_id)) { $before = SessionManager::get_user_status_in_session($session_id, $user_id); SessionManager::suscribe_users_to_session($session_id, array($user_id), SESSION_VISIBLE_READ_ONLY, false, false); $message = 'Move empty to Session'; @@ -920,7 +920,7 @@ class MigrationCustom { } } } - + static function check_if_user_is_subscribe_to_session($user_id, $session_id, $message = null, $before = array()) { $user_session_status = SessionManager::get_user_status_in_session($session_id, $user_id); if (!empty($user_session_status)) { @@ -938,17 +938,17 @@ class MigrationCustom { ); } } - + //Cursos //añadir curso curso_agregar CID //const TRANSACTION_TYPE_ADD_COURSE = 5; static function transaction_5($data, $web_service_details) { - $uidCursoId = $data['item_id']; - $course_info = Migration::soap_call($web_service_details, 'cursoDetalles', array('intIdSede'=> $data['branch_id'], 'uididcurso' => $uidCursoId)); + $uidCursoId = $data['item_id']; + $course_info = Migration::soap_call($web_service_details, 'cursoDetalles', array('intIdSede'=> $data['branch_id'], 'uididcurso' => $uidCursoId)); if ($course_info['error'] == false) { unset($course_info['error']); $course_info = CourseManager::create_course($course_info); - $course_info = api_get_course_info($course_info['code'], true); + $course_info = api_get_course_info($course_info['code'], true); if (!empty($course_info)) { return array( 'entity' => 'course', @@ -967,7 +967,7 @@ class MigrationCustom { return $course_info; } } - + //eliminar curso curso_eliminar CID //const TRANSACTION_TYPE_DEL_COURSE = 6; static function transaction_6($data) { @@ -989,25 +989,25 @@ class MigrationCustom { 'status_id' => self::TRANSACTION_STATUS_FAILED ); } - + } - + //editar detalles de curso curso_editar CID //const TRANSACTION_TYPE_EDIT_COURSE = 7; static function transaction_7($data, $web_service_details) { $uidCursoId = $data['item_id']; - $course_code = self::get_real_course_code($uidCursoId); - if (!empty($course_code)) { - $course_info = api_get_course_info($course_code, true); + $course_code = self::get_real_course_code($uidCursoId); + if (!empty($course_code)) { + $course_info = api_get_course_info($course_code, true); $data_to_update = Migration::soap_call($web_service_details, 'cursoDetalles', array('intIdSede'=> $data['branch_id'], 'uididcurso' => $uidCursoId)); - + if ($data_to_update['error'] == false) { //do some cleaning $data_to_update['code'] = $course_info['code']; - unset($data_to_update['error']); + unset($data_to_update['error']); CourseManager::update($data_to_update); $course_info_after = api_get_course_info($course_code, true); - + return array( 'entity' => 'course', 'before' => $course_info, @@ -1017,7 +1017,7 @@ class MigrationCustom { ); } else { return $data_to_update; - } + } } else { return array( 'message' => "couCoursese_code does not exists $course_code ", @@ -1025,7 +1025,7 @@ class MigrationCustom { ); } } - + /** * Cambiar curso de progr. académ. (de nada a A) curso_matricula CID ORIG DEST * @todo Unused ? @@ -1035,10 +1035,10 @@ class MigrationCustom { $course_code = self::get_real_course_code($data['item_id']); $uidIdPrograma = $data['orig_id']; $uidIdProgramaDestination = $data['dest_id']; - + $session_id = self::get_session_id_by_programa_id($uidIdPrograma); $destination_session_id = self::get_session_id_by_programa_id($uidIdProgramaDestination); - + if (!empty($course_code)) { if (empty($uidIdPrograma) && !empty($uidIdProgramaDestination) && !empty($destination_session_id)) { SessionManager::add_courses_to_session($destination_session_id, array($course_code)); @@ -1051,7 +1051,7 @@ class MigrationCustom { '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", @@ -1059,13 +1059,13 @@ class MigrationCustom { ); } } - + //Programas académicos //añadir p.a. pa_agregar PID // const TRANSACTION_TYPE_ADD_SESS = 8; static function transaction_8($data, $web_service_details) { $session_info = Migration::soap_call($web_service_details, 'programaDetalles', array('intIdSede'=> $data['branch_id'], 'uididprograma' => $data['item_id'])); - + if ($session_info['error'] == false) { unset($session_info['error']); // check dates (only do this at session creation) @@ -1091,13 +1091,13 @@ class MigrationCustom { return $session_info; } } - - + + //eliminar p.a. pa_eliminar PID //const TRANSACTION_TYPE_DEL_SESS = 9; static function transaction_9($data) { - $uidIdPrograma = $data['item_id']; - $session_id = self::get_session_id_by_programa_id($uidIdPrograma); + $uidIdPrograma = $data['item_id']; + $session_id = self::get_session_id_by_programa_id($uidIdPrograma); if (!empty($session_id)) { $session_info_before = api_get_session_info($session_id, true); SessionManager::delete_session($session_id, true); @@ -1116,15 +1116,15 @@ class MigrationCustom { ); } } - + //editar detalles de p.a. pa_editar PID // const TRANSACTION_TYPE_EDIT_SESS = 10; - static function transaction_10($data, $web_service_details) { - $uidIdPrograma = $data['item_id']; + static function transaction_10($data, $web_service_details) { + $uidIdPrograma = $data['item_id']; $session_id = self::get_session_id_by_programa_id($uidIdPrograma); - if (!empty($session_id)) { + if (!empty($session_id)) { $session_info = Migration::soap_call($web_service_details, 'programaDetalles', array('intIdSede'=> $data['branch_id'], 'uididprograma' => $data['item_id'])); - if ($session_info['error'] == false) { + if ($session_info['error'] == false) { $session_info['id'] = $session_id; unset($session_info['error']); $session_info_before = api_get_session_info($session_id, true); @@ -1139,58 +1139,58 @@ class MigrationCustom { ); } else { return $session_info; - } + } } else { return array( 'message' => "Session does not exists $uidIdPrograma", 'status_id' => self::TRANSACTION_STATUS_FAILED ); - } + } } - + 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']; - + $common_message = " - item_id: $uidIdPrograma, dest_id: $destination_id - looking for extra_field_variable: $extra_field_variable - with data ".print_r($data, 1); - - $session_id = self::get_session_id_by_programa_id($uidIdPrograma); + + $session_id = self::get_session_id_by_programa_id($uidIdPrograma); if (!empty($session_id)) { //?? $extra_field = new ExtraField('session'); $extra_field_info = $extra_field->get_handler_field_info_by_field_variable($extra_field_variable); //horario, aula, etc - + if (empty($extra_field_info)) { return array( 'message' => "Extra field $extra_field_variable doest not exists in the DB $common_message", 'status_id' => self::TRANSACTION_STATUS_FAILED ); } - + //check if option exists $extra_field_option = new ExtraFieldOption('session'); $extra_field_option_info = $extra_field_option->get_field_option_by_field_and_option($extra_field_info['id'], $destination_id); //horario, aula, etc - + if ($extra_field_option_info) { $extra_field_value = new ExtraFieldValue('session'); - + //Getting info before $info_before = $extra_field_value->get_values_by_handler_and_field_id($session_id, $extra_field_info['id']); - + //Delete previous extra field value $extra_field_value->delete_values_by_handler_and_field_id($session_id, $extra_field_info['id']); - + $params = array( 'session_id' => $session_id, 'field_id' => $extra_field_info['id'], 'field_value' => $destination_id, - ); + ); $extra_field_value->save($params); - + //Getting info after $info_after = $extra_field_value->get_values_by_handler_and_field_id($session_id, $extra_field_info['id']); - + return array( 'entity' => $extra_field_variable, 'before' => $info_before, @@ -1198,7 +1198,7 @@ class MigrationCustom { 'message' => "Extra field $extra_field_variable saved with params: ".print_r($params, 1), 'status_id' => self::TRANSACTION_STATUS_SUCCESSFUL ); - } else { + } else { return array( 'message' => "Option does not exists dest_id: $destination_id $common_message", 'status_id' => self::TRANSACTION_STATUS_FAILED @@ -1209,40 +1209,40 @@ class MigrationCustom { 'message' => "Session does not exists: $uidIdPrograma $common_message", 'status_id' => self::TRANSACTION_STATUS_FAILED ); - } + } } - + //cambiar aula pa_cambiar_aula PID ORIG DEST //const TRANSACTION_TYPE_UPD_ROOM = 11; static function transaction_11($data) { return self::transaction_cambiar_generic('aula', $data); } - + //cambiar horario pa_cambiar_horario PID ORIG DEST //const TRANSACTION_TYPE_UPD_SCHED = 12; static function transaction_12($data) { return self::transaction_cambiar_generic('horario', $data); - } - - //cambiar sede pa_cambiar_sede PID ORIG DEST + } + + //cambiar sede pa_cambiar_sede PID ORIG DEST //no se usa (se declara el p.a. en otra sede, nada más) static function transaction_pa_cambiar_sede($data) { return self::transaction_cambiar_generic('sede', $data); } - + //cambiar intensidad pa_cambiar_fase_intensidad CID ORIG DEST (id de "intensidadFase") //no se usa (se declara el p.a. en otra sede, nada más) static function transaction_cambiar_pa_fase($data) { return self::transaction_cambiar_generic('fase', $data); } - + //no se usa (se declara el p.a. en otra sede, nada más) static function transaction_cambiar_pa_intensidad($data) { return self::transaction_cambiar_generic('intensidad', $data); } - + //------- - + static function transaction_extra_field_agregar_generic($extra_field_variable, $original_data, $web_service_details, $type='session') { $function_name = $extra_field_variable."Detalles"; $data = Migration::soap_call($web_service_details, $function_name, array('intIdSede'=> $original_data['branch_id'], "uidid".$extra_field_variable => $original_data['item_id'])); @@ -1256,7 +1256,7 @@ class MigrationCustom { $extra_field_info = $extra_field->get_handler_field_info_by_field_variable($extra_field_variable); if ($extra_field_info) { $extra_field_option = new ExtraFieldOption($type); - + $info_before = $extra_field_option->get_field_options_by_field($extra_field_info['id']); $params = array( @@ -1267,9 +1267,9 @@ class MigrationCustom { ); $result = $extra_field_option->save_one_item($params); - + $info_after = $extra_field_option->get_field_options_by_field($extra_field_info['id']); - + if ($result) { return array( 'entity' => $extra_field_variable, @@ -1283,7 +1283,7 @@ class MigrationCustom { 'message' => "Extra field option added - $extra_field_variable was NOT saved with data: ".print_r($params,1), 'status_id' => self::TRANSACTION_STATUS_FAILED ); - } + } } else { return array( 'message' => "Extra field was not found: $extra_field_variable", @@ -1293,8 +1293,8 @@ class MigrationCustom { } else { return $data; } - } - + } + static function transaction_extra_field_editar_generic($extra_field_variable, $original_data, $web_service_details, $type='session') { $extra_field = new ExtraField($type); $extra_field_info = $extra_field->get_handler_field_info_by_field_variable($extra_field_variable); @@ -1304,34 +1304,34 @@ class MigrationCustom { 'status_id' => self::TRANSACTION_STATUS_FAILED ); } - - $extra_field_option = new ExtraFieldOption($type); + + $extra_field_option = new ExtraFieldOption($type); $extra_field_option_info = $extra_field_option->get_field_option_by_field_and_option($extra_field_info['id'], $original_data['item_id']); - + $function_name = $extra_field_variable."Detalles"; - + $params = array('intIdSede'=> $original_data['branch_id'], "uidid".$extra_field_variable => $original_data['item_id']); - - $data = Migration::soap_call($web_service_details, $function_name, $params); + + $data = Migration::soap_call($web_service_details, $function_name, $params); if ($data['error'] == false) { - + // Exceptional treatment for specific fields if ($extra_field_variable == 'aula') { $data['name'] = $original_data['branch_id'].' - '.$data['name']; } //Update 1 item if (!empty($extra_field_option_info)) { - + $info_before = $extra_field_option->get_field_options_by_field($extra_field_info['id']); - + if (count($extra_field_option_info) > 1) { //var_dump($extra_field_option_info); - //Take the first one + //Take the first one error_log('Warning! There are several options with the same key. You should delete doubles. Check your DB with this query:'); error_log("SELECT * FROM ".$type."_field_options WHERE field_id = {$extra_field_info['id']} AND option_value = '{$original_data['item_id']}' "); error_log('All options are going to be updated'); } - + $options_updated = array(); foreach ($extra_field_option_info as $option) { $extra_field_option_info = array( @@ -1340,16 +1340,16 @@ class MigrationCustom { 'option_value' => $original_data['item_id'], 'option_display_text' => $data['name'], 'option_order' => null - ); + ); $extra_field_option->update($extra_field_option_info); error_log('Editing extra field: '.print_r($extra_field_option_info,1)); $options_updated[] = $option['id']; } - + $info_after = $extra_field_option->get_field_options_by_field($extra_field_info['id']); $options_updated = implode(',', $options_updated); - + return array( 'entity' => $extra_field_variable, 'before' => $info_before, @@ -1365,21 +1365,21 @@ error_log('Editing extra field: '.print_r($extra_field_option_info,1)); } } else { return $data; - } + } } - - /* Delete all options with option_value = item_id */ - static function transaction_extra_field_eliminar_generic($extra_field_variable, $original_data, $web_service_details, $type='session') { //horario + + /* Delete all options with option_value = item_id */ + static function transaction_extra_field_eliminar_generic($extra_field_variable, $original_data, $web_service_details, $type='session') { //horario $extra_field = new ExtraField($type); $extra_field_info = $extra_field->get_handler_field_info_by_field_variable($extra_field_variable); - - $extra_field_option = new ExtraFieldOption($type); + + $extra_field_option = new ExtraFieldOption($type); $extra_field_option_info = $extra_field_option->get_field_option_by_field_and_option($extra_field_info['id'], $original_data['item_id']); - + if (!empty($extra_field_option_info)) { - + $info_before = $extra_field_option->get_field_options_by_field($extra_field_info['id']); - + $deleting_option_ids = array(); foreach ($extra_field_option_info as $option) { //@todo Delete all horario in sessions? @@ -1389,7 +1389,7 @@ error_log('Editing extra field: '.print_r($extra_field_option_info,1)); } } $info_after = $extra_field_option->get_field_options_by_field($extra_field_info['id']); - + if (!empty($deleting_option_ids)) { $deleting_option_ids = implode(',', $deleting_option_ids); return array( @@ -1405,7 +1405,7 @@ error_log('Editing extra field: '.print_r($extra_field_option_info,1)); 'status_id' => self::TRANSACTION_STATUS_FAILED ); } - } else { + } else { return array( 'message' => "Extra field option was NOT deleted - Extra field not found in DB. Trying to locate field_variable: '$extra_field_variable' with id: '{$original_data['item_id']}'", 'status_id' => self::TRANSACTION_STATUS_FAILED @@ -1413,33 +1413,33 @@ error_log('Editing extra field: '.print_r($extra_field_option_info,1)); } } - + // Horario - // añadir horario_agregar HID + // añadir horario_agregar HID // const TRANSACTION_TYPE_ADD_SCHED = 13; static function transaction_13($data, $web_service_details) { - return self::transaction_extra_field_agregar_generic('horario', $data, $web_service_details); + return self::transaction_extra_field_agregar_generic('horario', $data, $web_service_details); } - + // eliminar horario_eliminar HID // const TRANSACTION_TYPE_DEL_SCHED = 14; static function transaction_14($data, $web_service_details) { return self::transaction_extra_field_eliminar_generic('horario', $data, $web_service_details); } - + // editar horario_editar HID // const TRANSACTION_TYPE_EDIT_SCHED = 15; static function transaction_15($data, $web_service_details) { return self::transaction_extra_field_editar_generic('horario', $data, $web_service_details); } - + // Aula // añadir aula_agregar AID // const TRANSACTION_TYPE_ADD_ROOM = 16; static function transaction_16($data, $web_service_details) { return self::transaction_extra_field_agregar_generic('aula', $data, $web_service_details); } - + // eliminar aula_eliminar AID // const TRANSACTION_TYPE_DEL_ROOM = 17; static function transaction_17($data, $web_service_details) { @@ -1497,7 +1497,7 @@ error_log('Editing extra field: '.print_r($extra_field_option_info,1)); static function transaction_26($data, $web_service_details) { return self::transaction_extra_field_eliminar_generic('intensidad', $data, $web_service_details, 'course'); } - + // editar intfase_editar IID // const TRANSACTION_TYPE_EDIT_INTENS = 27; static function transaction_27($data, $web_service_details) { @@ -1509,42 +1509,42 @@ error_log('Editing extra field: '.print_r($extra_field_option_info,1)); static function transaction_28($data, $web_service_details) { return self::transaction_extra_field_agregar_generic('fase', $data, $web_service_details, 'course'); } - + // eliminar fase_eliminar IID // const TRANSACTION_TYPE_DEL_FASE = 29; static function transaction_29($data, $web_service_details) { return self::transaction_extra_field_eliminar_generic('fase', $data, $web_service_details, 'course'); } - + // editar fase_editar IID // const TRANSACTION_TYPE_EDIT_FASE = 30; static function transaction_30($data, $web_service_details) { return self::transaction_extra_field_editar_generic('fase', $data, $web_service_details, 'course'); } - + //custom class moved here - - static function transacciones($data) { + + static function transacciones($data) { if ($data) { - $xml = $data->transaccionesResult->any; + $xml = $data->transaccionesResult->any; // Cut the invalid XML and extract the valid chunk with the data $stripped_xml = strstr($xml, '