Complete merge with BT#9091 - refs BT#9092

1.10.x
Daniel Barreto 11 years ago
parent fdd0ad4d70
commit 78c28b802a
  1. 2
      plugin/advancedsubscription/config.php
  2. 30
      plugin/advancedsubscription/lang/spanish.php
  3. 63
      plugin/advancedsubscription/lib/advanced_subscription_plugin.class.php
  4. 2
      plugin/advancedsubscription/plugin.php
  5. 29
      plugin/advancedsubscription/src/advanced_subscription_plugin.class.php

@ -3,7 +3,7 @@
/**
* Config the plugin
* @author Daniel Alejandro Barreto Alva <daniel.barreto@beeznest.com>
* @package chamilo.plugin.advanced_subscription
* @package chamilo.plugin.advancedsubscription
*/
define('TABLE_ADV_SUB_QUEUE', 'plugin_advsub_queue');

@ -3,24 +3,10 @@
/* Strings for settings */
$strings['plugin_title'] = 'Inscripción Avanzada';
$strings['plugin_comment'] = 'Plugin que permite gestionar la inscripción en cola a sesiones con comunicación a a un portal externo';
$strings['uit_value'] = 'Valor de la Unidad Impositiva Tributaria (UIT)';
$strings['ws_url'] = 'URL del Webservice';
$strings['min_profile_percentage'] = 'Porcentaje mínimo de perfil completado';
$strings['max_expended_uit'] = 'Limite anual de cursos en UIT por año(Medido en UIT)';
$strings['max_expended_num'] = 'Limite anual de cursos en horas por año(Medido en UIT)';
$strings['max_course_times'] = 'Limite anual de cantidad de cursos por año';
$strings['ws_url_help'] = 'La URL de la cual se solicitará información para el proceso de la inscripción avanzada';
$strings['check_induction'] = 'Activar requerimiento de curso inducción';
/* String for error message about requirements */
$strings['AdvancedSubscriptionNotConnected'] = "Usted no está conectado en la plataforma. Por favor ingrese su usuario / constraseña para poder inscribirse";
$strings['AdvancedSubscriptionProfileIncomplete'] = "Su perfil no es lo suficientemente completo para poder inscribirse al curso. Por favor complete su perfil";
$strings['AdvancedSubscriptionIncompleteInduction'] = "Usted aún no ha completado el curso de inducción. Por favor complete el curso inducción";
$strings['AdvancedSubscriptionCostXLimitReached'] = "Lo sentimos, usted ya ha alcanzado el límite anual de %s UIT para los cursos que ha seguido este año";
$strings['AdvancedSubscriptionTimeXLimitReached'] = "Lo sentimos, usted ya ha alcanzado el límite anual de %s horas para los cursos que ha seguido este año";
$strings['AdvancedSubscriptionCourseXLimitReached'] = "Lo sentimos, usted ya ha alcanzado el límite anual de %s cursos que ha seguido este año";
$strings['AdvancedSubscriptionNotMoreAble'] = "Lo sentimos, usted ya no cumple con las condiciones iniciales para poder inscribirse al curso";
//Needed in order to show the plugin title
$strings['check_induction_help'] = 'Escoja si se requiere que se complete los cursos de inducción';
$strings['tool_enable'] = 'Suscripción avanzada activada';
$strings['tool_enable_help'] = "Escoja si desea activar la suscripción avanzada.";
$strings['yearly_cost_limit'] = 'Límite de UITs';
@ -33,3 +19,15 @@ $strings['courses_count_limit'] = 'Límite de sesiones';
$strings['courses_count_limit_help'] = "El límite de cantidad de cursos (sesiones) que se pueden llevar en un año calendario del año actual y que <b>no</b> sean el curso de inducción";
$strings['course_session_credit_year_start_date'] = 'Fecha de inicio';
$strings['course_session_credit_year_start_date_help'] = "Fecha de inicio del año (día/mes)";
/* String for error message about requirements */
$strings['AdvancedSubscriptionNotConnected'] = "Usted no está conectado en la plataforma. Por favor ingrese su usuario / constraseña para poder inscribirse";
$strings['AdvancedSubscriptionProfileIncomplete'] = "Su perfil no es lo suficientemente completo para poder inscribirse al curso. Por favor complete su perfil";
$strings['AdvancedSubscriptionIncompleteInduction'] = "Usted aún no ha completado el curso de inducción. Por favor complete el curso inducción";
$strings['AdvancedSubscriptionCostXLimitReached'] = "Lo sentimos, usted ya ha alcanzado el límite anual de %s UIT para los cursos que ha seguido este año";
$strings['AdvancedSubscriptionTimeXLimitReached'] = "Lo sentimos, usted ya ha alcanzado el límite anual de %s horas para los cursos que ha seguido este año";
$strings['AdvancedSubscriptionCourseXLimitReached'] = "Lo sentimos, usted ya ha alcanzado el límite anual de %s cursos que ha seguido este año";
$strings['AdvancedSubscriptionNotMoreAble'] = "Lo sentimos, usted ya no cumple con las condiciones iniciales para poder inscribirse al curso";
//Needed in order to show the plugin title

@ -1,63 +0,0 @@
<?php
/* For licensing terms, see /license.txt */
/**
* Class AdvancedSubscriptionPlugin
* This script contains basic plugin functions
*
* @package chamilo.plugin.advancedsubscription.lib
* @author Imanol Losada <imanol.losada@beeznest.com>
*/
class AdvancedSubscriptionPlugin extends Plugin
{
//public $isCoursePlugin = true;
/**
* create (a singleton function that ensures AdvancedSubscriptionPlugin instance is
* created only once. If it is already created, it returns the instance)
* @return object AdvancedSubscriptionPlugin instance
*/
public static function create()
{
static $result = null;
return $result ? $result : $result = new self();
}
/**
* Constructor
* @return void
*/
protected function __construct()
{
parent::__construct(
'0.1',
'Imanol Losada',
array(
'tool_enable' => 'boolean',
'yearly_cost_limit' => 'text',
'yearly_hours_limit' => 'text',
'yearly_cost_unit_converter' => 'text',
'courses_count_limit' => 'text',
'course_session_credit_year_start_date' => 'text'
)
);
}
/**
* install (installs the plugin)
* @return void
*/
public function install()
{
}
/**
* install (uninstalls the plugin and removes all plugin's tables and/or rows)
* @return void
*/
public function uninstall()
{
$tSettings = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
Database::query("DELETE FROM $tSettings WHERE subkey = 'advancedsubscription'");
}
}

@ -3,7 +3,7 @@
/**
* This script is a configuration file for the date plugin. You can use it as a master for other platform plugins (course plugins are slightly different).
* These settings will be used in the administration interface for plugins (Chamilo configuration settings->Plugins)
* @package chamilo.plugin.advanced_subscription
* @package chamilo.plugin.advancedsubscription
*/
/**
* Plugin details (must be present)

@ -4,7 +4,7 @@
* @TODO: Improve description
* This class is used to add an advanced subscription allowing the admin to
* create user queues requesting a subscribe to a session
* @package chamilo.plugin.advanced_subscription
* @package chamilo.plugin.advancedsubscription
*/
class AdvancedSubscriptionPlugin extends Plugin
@ -15,17 +15,19 @@ class AdvancedSubscriptionPlugin extends Plugin
function __construct()
{
$parameters = array(
'uit_value' => 'boolean',
'tool_enable' => 'boolean',
'yearly_cost_limit' => 'text',
'yearly_hours_limit' => 'text',
'yearly_cost_unit_converter' => 'text',
'courses_count_limit' => 'text',
'course_session_credit_year_start_date' => 'text',
'ws_url' => 'text',
'min_profile_percentage' => 'text',
'max_expended_uit' => 'text',
'max_expended_num' => 'text',
'max_course_times' => 'text',
'check_induction' => 'boolean',
'confirmation_message' => 'wysiwyg'
);
parent::__construct('1.0', 'Daniel Alejandro Barreto Alva', $parameters);
parent::__construct('1.0', 'Imanol Losada, Daniel Barreto', $parameters);
}
/**
@ -103,8 +105,9 @@ class AdvancedSubscriptionPlugin extends Plugin
* Drop the database tables for the plugin
* @return void
*/
private function unistallDatabase()
private function uninstallDatabase()
{
/* Drop plugin tables */
$pAdvSubQueueTable = Database::get_main_table(TABLE_ADV_SUB_QUEUE);
$pAdvSubMailTable = Database::get_main_table(TABLE_ADV_SUB_MAIL);
$pAdvSubMailTypeTable = Database::get_main_table(TABLE_ADV_SUB_MAIL_TYPE);
@ -116,6 +119,10 @@ class AdvancedSubscriptionPlugin extends Plugin
$sql .= "DROP TABLE IF EXISTS $pAdvSubMailStatusTable; ";
Database::query($sql);
/* Delete settings */
$tSettings = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
Database::query("DELETE FROM $tSettings WHERE subkey = 'advancedsubscription'");
}
/**
@ -140,16 +147,16 @@ class AdvancedSubscriptionPlugin extends Plugin
// @TODO: check if user have completed at least one induction session
$completedInduction = true;
if (!$checkInduction || $completedInduction) {
$uitMax = $advSubPlugin->get('uit_value');
$uitMax *= $advSubPlugin->get('max_expended_uit');
$uitMax = $advSubPlugin->get('yearly_cost_unit_converter');
$uitMax *= $advSubPlugin->get('yearly_cost_limit');
// @TODO: Get UIT completed by user this year by WS
$uitUser = 0;
if ($uitMax > $uitUser) {
$expendedTimeMax = $advSubPlugin->get('max_expended_time');
$expendedTimeMax = $advSubPlugin->get('yearly_hours_limit');
// @TODO: Get Expended time from user data
$expendedTime = 0;
if ($expendedTimeMax > $expendedTime) {
$expendedNumMax = $advSubPlugin->get('max_expended_num');
$expendedNumMax = $advSubPlugin->get('courses_count_limit');
// @TODO: Get Expended num from user
$expendedNum = 0;
if ($expendedNumMax > $expendedNum) {

Loading…
Cancel
Save