File: /home/cursos.ril.es/app/Http/Controllers/AlumnosCursosController.php
<?php
namespace App\Http\Controllers;
use App\Categorias;
use App\Cursos;
use App\ListaEspera;
use App\ListaInteresados;
use App\Profesores;
use App\User;
use App\UsersCursos;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Http\Requests;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;
use Intervention\Image\Facades\Image;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\Yaml\Tests\A;
class AlumnosCursosController extends Controller
{
public function baja($id) {
$curso = Cursos::findOrFail($id);
if (Auth::user()->estaEnLista($curso)) {
$this->bajaLista($curso);
}
$this->bajaApuntarse($curso);
return view('payment.apologies', ['curso' => $curso]);
}
public function bajaLista(Cursos $curso) {
$curso->listaesperacursos()->where('users_id', Auth::user()->id)->delete();
}
public function bajaApuntarse(Cursos $curso) {
$curso->userscursos()->where('users_id', Auth::user()->id)->delete();
}
public function confirmarBaja($id) {
$curso = Cursos::findOrFail($id);
return view('payment.confirmarbaja', ['curso' => $curso]);
}
public function getInscribirse($slug, $msg = null) {
$curso = Cursos::where('slug', $slug)->firstOrFail();
if (Auth::check()) {
return view('inscripcion')->with(['curso' => $curso, 'categoria' =>$curso->categoria()->first(),'profesor' => $curso->profesor()->first(),'msg' => $msg]);
} else {
return view('noinscripcion');
}
}
public function getPagar($slug){
$curso = Cursos::where('slug', $slug)->first();
$categoria = $curso->categoria()->first();
if(! $curso->terminado()) {
if(! $curso->tienePlazas()) {
$this->addToListaEspera($curso);
return view('payment.thanks', ['curso' => $curso]);
} else {
$this->apuntar($curso);
return view("payment.pedirsenal")->with(["curso" => $curso, "categoria" => $categoria]);
}
}
abort(404);
}
public function addToListaEspera(Cursos $curso) {
if (! Auth::user()->estaEnLista($curso)) {
ListaEspera::create(['cursos_id' => $curso->id, 'users_id' => Auth::user()->id, 'regalo' => 0]);
}
}
public function apuntar(Cursos $curso) {
if (! Auth::user()->estaApuntado($curso)) {
UsersCursos::create(['cursos_id' => $curso->id, 'users_id' => Auth::user()->id, 'regalo' => 0]);
}
}
public function postPagar(){
return redirect("/cursos");
}
public function getCursosAlumno($id){
$alumno = User::find($id);
$cursos = $alumno->cursos()->get();
return view('admin.listadocursos')->with('cursos', $cursos)->with('alumno', $alumno);
}
public function deleteCursosAlumno($ids){
$dts = explode('|', $ids);
$usercurso = UsersCursos::where('cursos_id', $dts[1])->where('users_id', $dts[0])->get();
$usercurso[0]->delete();
return Redirect('/admin/cursosalumnos/'.$dts[0]);
}
public function getDatos(){
return view('micuenta.datosAlumno');
}
public function editarAlumno($id){
$user = User::find($id);
return view('micuenta.editAlumno')->with('alumno', $user);
}
public function updateAlumno(){
$rules = array(
'name' => 'required',
'apellidos' => 'required',
'telefono' => 'required',
'password' => 'required|min:3|max:100',
'password_confirmation' => 'required|same:password',
'email' => 'required|email',
);
$messages = [
'min' => 'El campo :attribute tiene que tener 3 caracteres mínimo.',
'max' => 'El campo :attribute tiene que tener 100 caracteres máximo.',
'required' => 'El campo :attribute es requerido.',
'integer' => 'El campo :attribute debe ser numérico.',
'email' => 'El email tiene que ser válido.',
'same' => 'Las contraseñas deben coincidir'
];
$validator = Validator::make(Input::all(), $rules, $messages);
if ($validator->fails()) {
Input::flash();
return view('micuenta.editAlumno')->withInput(Input::all())->withErrors($validator);
} else {
Auth::user();
Auth::user()->name = Input::get('name');
Auth::user()->apellidos = Input::get('apellidos');
Auth::user()->telefono = Input::get('telefono');
Auth::user()->email = Input::get('email');
Auth::user()->camara = Input::get('camara');
if (Input::hasFile('avatar')) {
Auth::user()->avatar = $this->uploadFile(Input::file('avatar'),str_slug(Auth::user()->email));
}
if (Auth::user()->password != Input::get('password') ) {
Auth::user()->password = Hash::make(Input::get('password'));
}
Auth::user()->update();
return Redirect('/mi-cuenta');
}
}
public function uploadFile(UploadedFile $file, $filename) {
if ($file->isValid()) {
Image::make($file)->resize(400, 400)->save(public_path() . '/img/alumnos/' . $filename . '.' . $file->getClientOriginalExtension());
return '/img/alumnos/' . $filename . '.' . $file->getClientOriginalExtension();
}
}
public function estaInteresado($id) {
return response()->json(Cursos::findOrFail($id)->interesado());
}
public function toggleInteres($id) {
$interesado = ListaInteresados::where('cursos_id', $id)->where('users_id', Auth::user()->id)->first();
if (! is_null($interesado)) {
$interesado->delete();
} else {
ListaInteresados::create(['cursos_id' => $id, 'users_id' => Auth::user()->id]);
}
return;
}
public function interesado(){
$idAlumno = Input::get('idAlumno');
$idCurso = Input::get('idCurso');
DB::table('lista_interesados')->insert(
array('cursos_id' => $idCurso, 'users_id' => $idAlumno)
);
}
public function bajaInteresado(){
$ids = Input::get('ids');
$dts = explode('-', $ids);
$interes = ListaInteresados::where('cursos_id', $dts[1])->where('users_id', $dts[2])->get();
$interes[0]->delete();
}
public static function getInteres($id){
$interes = ListaInteresados::where('cursos_id', $id)->where('users_id', Auth::user()->id)->get();
if($interes=="[]"){
return "lightblue";
}
else{
return "lightgreen";
}
}
}