<?php
/**
 * Formulario para el registro de un usuario en el sistema
 **/
class FormularioRegistroUsuarioBtMalaga extends MultiForm {

    public static $start_step = 'DatosPersonalesFormStep';

    public function finish($data, $form) {
      parent::finish($data, $form);
      $usuario = new UsuarioBtMalaga();
      $componenteUsuario = new ComponenteUsuarioBtMalaga();
      $idSistemas = array();

      $steps = DataObject::get('MultiFormStep', "SessionID = {$this->session->ID}");
      if($steps) {
         foreach($steps as $step) {
            if($step->class == 'DatosPersonalesFormStep') {
               $data = $step->loadData();
               if($data) {
                  $usuario->update($data);
                  $usuario->TipoNotificacion = 'Alerta y Email';
                  $usuario->write();

	    	      $componenteUsuario->UsuarioID = $usuario->ID;
	    	      $contenedorComponenteUsuario = DataObject::get_one('CarpetaBtMalaga', "Nombre = 'ContenedorComponenteUsuarioBtMalaga'");
	    	      $componenteUsuario->ParentID = $contenedorComponenteUsuario->ID;
	    	      $componenteUsuario->write();
			
			//guarda los sistemas
			if (isset($data['Sistemas'])) {
		    	  $sistemas = $data['Sistemas'];
		    	  if ($sistemas != null) {
		    		foreach ($sistemas as $sistema) {
		    			$sistemaUsuario = new SistemaUsuarioBtMalaga();
		    			$sistemaUsuario->UsuarioID = $usuario->ID;
		    			$sistemaUsuario->SistemaID = $sistema;                              
		    			$sistemaUsuario->write();
                              $idSistemas []= $sistema;
		    		}
		    	  }
			}
               }
            }
 
            if($step->class == 'OfertasObligatoriasFormStep') {
              $data = $step->loadData();
              if($data) {
                $contenedorOferta = DataObject::get_one('CarpetaBtMalaga', "Nombre = 'ContenedorOfertaBtMalaga'");	    	    

                foreach ($idSistemas as $idSistema) {
                  $sistema = DataObject::get_by_id('SistemaBtMalaga',$idSistema);
                  $ofertasIniciales= $sistema->OfertasIniciales;
                  $ofertas = array();
                  for ($i=0; $i < $ofertasIniciales; $i++) {
                    $oferta = new OfertaBtMalaga();
                    $oferta->Titulo = $data['Titulo_'.$idSistema.'_'.$i];
                    $oferta->Descripcion = $data['Descripcion_'.$idSistema.'_'.$i];
                    $oferta->Precio = $data['Precio_'.$idSistema.'_'.$i];
                    if (isset($data['Categoria_'.$idSistema.'_'.$i])) {
                      $oferta->CategoriaID = $data['Categoria_'.$idSistema.'_'.$i];
                    }  
                    $oferta->SistemaID=$idSistema;
                    $oferta->OfertanteID=$usuario->ID;
                    $oferta->AutorID = $usuario->ID;
                    $oferta->ParentID = $contenedorOferta->ID;
                    $oferta->EstadoNotificacion = 'NOTIFICADONUEVO';
                    $oferta->write();
                    $ofertas []= $oferta;
                  }
	            GestorMensajesBtMalaga::enviarMensajeRegistroAdministrador($usuario, $componenteUsuario, $sistema, $ofertas);
                }
              }
            }
 
         }
      }

	GestorMensajesBtMalaga::enviarMensajeRegistroUsuario($usuario);


	Session::set("Security.Message.message", 'El registro se ha realizado correctamente, ahora ya puede entrar en el sistema con sus credenciales.');
	Session::set("Security.Message.type", 'warning');
	Director::redirect('SecurityBtMalaga/login');

    }
}
?>
