Untitled
unknown
plain_text
3 years ago
5.8 kB
5
Indexable
<?php
namespace App\Http\Controllers;
use App\Models\Eventos;
use App\Models\EventosRegistros;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
date_default_timezone_set('America/Mexico_City');
class EventosController extends Controller
{
public function lista_api(Request $request){
if($request->ajax()){
return datatables()->eloquent(Eventos::query())
->addColumn('Fecha', function ($row) {
$Fecha = $row->created_at;
return $Fecha;
})
->addColumn('btn', function ($row) {
$User = User::find(Auth::user()->id);
if($row->habilitado == 0){
$actionBtn = "<div class='btn-group btn-group-sm' role='group'>";
if($User->hasPermissionTo('per.eventos.editar')){
$actionBtn = $actionBtn . "<a href='" . route('eventos.editar', ['idEventos' => $row->id]) . "' class='btn btn-primary'>Editar</a>";
}
if($User->hasPermissionTo('per.eventos.desactivar')){
$actionBtn = $actionBtn . "<a href='" . route('eventos.desactivar', ['idEventos' => $row->id]) . "' class='btn btn-danger'>Desactivar</a>";
}
$actionBtn = $actionBtn . "</div>";
}else{
$actionBtn = "<div class='btn-group btn-group-sm' role='group'>";
if($User->hasPermissionTo('per.eventos.editar')){
$actionBtn = $actionBtn . "<a href='" . route('eventos.editar', ['idEventos' => $row->id]) . "' class='btn btn-primary'>Editar</a>";
}
if($User->hasPermissionTo('per.eventos.activar')){
$actionBtn = $actionBtn . "<a href='" . route('eventos.activar', ['idEventos' => $row->id]) . "' class='btn btn-info'>Activar</a>";
}
$actionBtn = $actionBtn . "</div>";
}
return $actionBtn;
})
->rawColumns(['btn', 'Fecha'])
->toJson();
}
return redirect()->route('eventos.lista');
}
public function lista(){
return view('eventos.lista');
}
public function nuevo(){
return view('eventos.crear');
}
public function nuevo_post(Request $request){
$request->validate([
'Nombre' => 'required|string|max:255',
'Descripcion' => 'required',
'DefinirEventoPaga' => 'required|numeric',
], [
'Nombre.required' => 'El nombre es requerido.',
'Nombre.max' => 'El nombre debe contener máximo 255 carácteres.',
'Descripcion.required' => 'La descripción es requerida.',
'DefinirEventoPaga.required' => 'Debe elegir si es un evento de paga o gratuito.',
]);
$FechaHoraActual = date("Y-m-d H:i:s");
$TokenParaEncryp = $request->Nombre.' | '.$FechaHoraActual;
$TokenRefenciaCrudo = Hash::make($TokenParaEncryp);
$TokenRefencia = preg_replace('([^A-Za-z0-9 \._\-@])', '', $TokenRefenciaCrudo);
$EventoNuevo = Eventos::create([
'nombre' => $request->Nombre,
'descripcion' => $request->Descripcion,
'referencia' => $TokenRefencia,
'registros' => 0,
'habilitado' => 0,
'pago' => $request->AgendarMismoHorario,
]);
return redirect()->route('eventos.lista')->with('mensaje', 'Evento creado.');
}
public function editar(int $idEventos){
$info['Evento'] = Eventos::find($idEventos);
if(!$info['Evento']){
return redirect()->route('eventos.lista')->with('mensaje', 'El evento no existe.');
}
return view('eventos.editar', $info);
}
public function editar_post(Request $request, int $idEventos){
$request->validate([
'Nombre' => 'required|string|max:255',
'Descripcion' => 'required',
], [
'Nombre.required' => 'El nombre es requerido.',
'Nombre.max' => 'El nombre debe contener máximo 255 carácteres.',
'Descripcion.required' => 'La descripción es requerida.',
]);
$ActualizarEvento = Eventos::find($idEventos);
$ActualizarEvento->update([
'nombre' => $request->Nombre,
'descripcion' => $request->Descripcion,
]);
return redirect()->route('eventos.editar', ['idEventos' => $idEventos])->with('mensaje', 'Evento actualizado.');
}
public function desactivar(int $idEventos){
$ActualizarEvento = Eventos::find($idEventos);
if(!$ActualizarEvento){
return redirect()->route('eventos.lista')->with('mensaje', 'El evento no existe.');
}
$ActualizarEvento->update([
'habilitado' => 1,
]);
$ActualizarEventosRegistros = EventosRegistros::where('eventos_id', '=', $ActualizarEvento->id)->update(['habilitado' => 1]);
return redirect()->route('eventos.lista')->with('mensaje', 'Evento desactivado.');
}
public function activar(int $idEventos){
$ActualizarEvento = Eventos::find($idEventos);
if(!$ActualizarEvento){
return redirect()->route('eventos.lista')->with('mensaje', 'El evento no existe.');
}
$ActualizarEvento->update([
'habilitado' => 0,
]);
return redirect()->route('eventos.lista')->with('mensaje', 'Evento activado.');
}
}
Editor is loading...