<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.controller' );
/**
* Chalange Component Controller
*
* @package Chalange
*/
class ChalangeController extends JController
{
/**
* Method to show a mycomponent view
*/
function display()
{
// Set a default view (carreras) if none exists
if ( ! JRequest::getCmd( 'view' ) ) {
JRequest::setVar('view', 'carreras' );
}
parent::display();
}
function licenceValidation(){
$model=& $this->getModel('licenceForm');
$post=JRequest::get('post');
$licence=JRequest::getCmd('licence');
$idCarrera=JRequest::getCmd( 'idCarrera' );
$option=JRequest::getCmd('option');
if ($licence==''){
$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera");
$this->setMessage($name." ".JText::_('LICENCE NUMBER NOT VALID'));
}else{
if ($model->isRegistered($post)){ //si el corredor ya se habÃa inscrito para la cerrara
$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera");
$aux=$model->getPlayer($post);
$name=$aux->name." ".$aux->surname;
$this->setMessage($name." ".JText::_('IS ALREADY REGISTERED'));
} else { //si no estaba inscrito
$player=$model->getPlayer(JRequest::get('post'));
if (empty($player)){ //no existe el corredor en la BBDD
$licenceId=JRequest::getCmd('licence');
$this->setRedirect("index.php?option=$option&view=playerForm&idCarrera=$idCarrera&licenceId=$licenceId");
} else { //el corredor existe en la BBDD
$licenceId=$player->id;
$this->setRedirect("index.php?option=$option&view=player&licenceId=$licenceId&idCarrera=$idCarrera");
}
}
}
}
function registerAndRecord(){//Insertamos un corredor que no estaba almacenado en gcd_players con anterioridad
$option=JRequest::getCmd('option');
$playerModel=& $this->getModel('player');
$registerModel=& $this->getModel('register');
$idCarrera=JRequest::getCmd( 'idCarrera' );
$idPlayer=$playerModel->store(JRequest::get('post'));//almacenamos el nuevo corredor y recuperamos su id
if($idPlayer>0){ //si el id devuelto es mayor que 0 es que ha sido almacenado correctamente
$player=$playerModel->getPlayer($idPlayer);
if($registerModel->store($idPlayer,$player,$idCarrera)){ //inscribimos al corredor en la carera
//si se inscribe con éxito
$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera"); //volvemos a la vista de inscritos de la prueba
$this->setMessage($name." ".JText::_('IS REGISTERED')); //mostramos mensaje de confirmación.
}
}
}
function registerModificado(){
$option=JRequest::getCmd('option');
$registerModel=& $this->getModel('register');
//$playerModel=& $this->getModel('player');
//$playerModel->getPlayer(JRequest::getCmd( 'idPlayer' ));
$idCarrera=JRequest::getCmd( 'idCarrera' );
$aux=JRequest::get('post');
//echo $aux['name'];
$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera");
if($registerModel->modifyAndStore(JRequest::getCmd( 'idPlayer' ),JRequest::get('post'),$idCarrera)){
//si se inscribe con éxito
$this->setMessage($name." ".JText::_('IS REGISTERED'));
} else{
$this->setMessage($name." ".JText::_('IS ALREADY REGISTERED'));
}
}
function register(){ //insertamos un corredor ya almacenado en gcd_registered sin modificaciones
$mainframe =& JFactory::getApplication();
$chalangeId= $mainframe->getUserState("$option.chalange_variable");
$option=JRequest::getCmd('option');
$registerModel=& $this->getModel('register');
$playerModel=& $this->getModel('player');
$player=$playerModel->getPlayer(JRequest::getCmd( 'idPlayer' ));
$dorsal=$playerModel->getDorsal(JRequest::getCmd( 'idPlayer' ),$chalangeId);
$player->dorsal=$dorsal;
$idCarrera=JRequest::getCmd( 'idCarrera' );
$this->setRedirect("index.php?option=$option&view=registered&idCarrera=$idCarrera");
if($registerModel->store(JRequest::getCmd( 'idPlayer' ),$player,$idCarrera)){
//si se inscribe con éxito
$this->setMessage($name." ".JText::_('IS REGISTERED'));
} else {
$this->setMessage($name." ".JText::_('IS ALREADY REGISTERED'));
}
}
//tarea download: Descarga el fichero excell con los incritos para una carrera
function download(){
require_once( JPATH_COMPONENT.DS.'helpers'.DS.'excel_writer.php' );
$registeredModel=& $this->getModel('registered');
$idCarrera=JRequest::getCmd( 'idCarrera' );
$raceModel=& $this->getModel('licenceform');
$raceName=$raceModel->getRaceName($idCarrera);
$registered=$registeredModel->getRegistereds($idCarrera);
writeExcel::createRegisteredSheet($raceName."_".JText::_('REGISTERED SHEET'),$registered);
exit; //importante para que se descarge el fichero y temrine el stream binario.
}
}
?>