MINI MINI MANI MO
<?php
namespace App\Http\Controllers\MCG;
use App\Http\Controllers\Controller;
use App\Models\CddDiputadosLxi;
use App\Models\CddSesiones;
use App\Models\TipoSesion;
use App\Models\TipoPeriodo;
use App\Models\TipoRegimen;
use Carbon\Carbon;
use Illuminate\Contracts\Foundation\Application;
use App\Models\CddIntegrantesLXI;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
class SesionesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
*/
public function index()
{
$sesiones = CddSesiones::all();
return view("Administrador.sesiones.index", compact("sesiones"));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$last = CddSesiones::orderBy("sesion", "DESC")->first();
$last = $last->sesion + 1;
$an = Arr::pluck(TipoSesion::all(), "valor", "id");
$periodo = Arr::pluck(TipoPeriodo::all(), "valor", "id");
$regimen = Arr::pluck(TipoRegimen::all(), "valor", "id");
// dd($an);
return view("Administrador.sesiones.create", compact("last", "an", "periodo", "regimen"));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
// dd($request->all());
$params = $this->setValues($request);
CddSesiones::create($params);
return redirect()->route("mcg.sesiones.index");
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Http\Response
*/
public function edit($id)
{
$an = Arr::pluck(TipoSesion::all(), "valor", "id");
$periodo = Arr::pluck(TipoPeriodo::all(), "valor", "id");
$regimen = Arr::pluck(TipoRegimen::all(), "valor", "id");
$sesion = CddSesiones::find(base64_decode(base64_decode($id)));
return view("Administrador.sesiones.edit", compact("sesion", "an", "periodo", "regimen"));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$sesion = CddSesiones::find(base64_decode(base64_decode($id)));
$params = $this->setValues($request);
if (isset($params["eliminarorden"])) {
$params["orden"] = null;
}
if (isset($params["eliminaracta"])) {
$params["acta"] = null;
}
if (isset($params["eliminarversion"])) {
$params["version"] = null;
}
$sesion->update($params);
return redirect()->route("mcg.sesiones.index");
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$sesion = CddSesiones::find(base64_decode(base64_decode($id)));
// dd($sesion->asistencias);
if ($sesion->asistencias) {
foreach ($sesion->asistencias as $item) {
$item->delete();
}
}
$sesion->delete();
return redirect()->back()->with('deleteD', 'ok');
}
public function uploadFile($file, $path)
{
return $file->storeAs($path, $file->getClientOriginalName());
}
public function setValues(Request $request)
{
$params = $request->get("sesion");
$params["date"] = Carbon::createFromFormat("d/m/Y", $params["date"])->format("Y-m-d");
if ($request->hasFile("orden")) {
$path = "public/documentos/asuntos/ordenesdeldia";
$this->uploadFile($request->file("orden"), $path);
$params["orden"] = $request->file("orden")->getClientOriginalName();
}
if ($request->hasFile("acta")) {
$path = "public/documentos/asuntos/actas";
$this->uploadFile($request->file("acta"), $path);
$params["acta"] = $request->file("acta")->getClientOriginalName();
}
if ($request->hasFile("version")) {
$path = "public/documentos/asuntos/versiones";
$this->uploadFile($request->file("version"), $path);
$params["version"] = $request->file("version")->getClientOriginalName();
}
return $params;
}
public function asistencia($id)
{
$id = base64_decode(base64_decode($id));
$dip = CddDiputadosLxi::withTrashed()->get();
$sesion = CddSesiones::find($id);
$estatus = [
1 => "Asistencia",
2 => "Inasistencia Justificada",
// 3 => "Justificación",
// 4 => "Sin asistencia",
];
if (count($sesion->asistencia)) {
$diputados = CddDiputadosLxi::whereHas("asistencia", function ($q) use ($id) {
$q->where("id_sesion", $id);
})->orderBy("apaterno")->withTrashed()->get();
} else {
if ($sesion->tipo_sesion) {
$comision = CddIntegrantesLXI::select('id_diputado')->where('id_comision', 63)->get()->pluck("id_diputado");
$diputados = CddDiputadosLxi::where('status', 'activo')->whereIn("id", $comision)->get();
// dd($diputados);
} else {
$diputados = CddDiputadosLxi::orderBy("apaterno")->get();
}
}
return view("Administrador.sesiones.asistencia.edit", compact("diputados", "sesion", "estatus","dip"));
}
public function saveAsistencia(Request $request, $id)
{
$params = $request->except("_method", "_token");
$sesion = CddSesiones::find(base64_decode(base64_decode($id)));
$sesion->asistencias()->delete();
foreach ($params as $key => $item) {
// dd($item);
if (count($item) != 2) {
$idDiputado = base64_decode(base64_decode($key));
$dip = CddDiputadosLxi::withTrashed()->find($idDiputado);
$data = [
"id_diputado" => $idDiputado,
"asistencia" => $item[0],
"legislatura" => "LXI",
"partido_id" => $dip->id_partido
];
$sesion->asistencias()->create($data);
}
}
return redirect()->back()->with("asistencia", "ok");
}
}
OHA YOOOO