MINI MINI MANI MO
<?php
namespace App\Http\Controllers\MCG;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use App\Models\CddSesionComision;
use App\Models\CddComisiones;
use App\Models\CddSesiones;
use App\Models\CddDiputadosLxi;
use App\Models\CddIntegrantesLXI;
use App\Models\CddTemasSesionComision;
use App\Models\CddIniciativas;
use App\Models\CddSubtemas;
use App\Models\TipoSesion;
use App\Models\TipoPeriodo;
use Illuminate\Support\Facades\Storage;
class ComisionesController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$eventoComision = CddSesionComision::orderBy('sesion', 'DESC')->get();
return view("Administrador.comisiones.index", compact("eventoComision"));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$last = CddSesionComision::orderBy("sesion", "DESC")->first();
if($last){
$last = $last->sesion + 1;
}else{
$last = 1;
}
$comisiones = Arr::pluck(CddComisiones::all(), "nombre", "id" );
$iniciativas = Arr::pluck(CddIniciativas::where('categoria','Iniciativa')->get(), "iniciativa", "id" );
$puntosAcuerdos = Arr::pluck(CddIniciativas::where('categoria','Punto de Acuerdo')->get(), "iniciativa", "id" );
$an = Arr::pluck(TipoSesion::all(), "valor", "id" );
$periodo = Arr::pluck(TipoPeriodo::all(), "valor", "id" );
return view("Administrador.comisiones.create", compact("last", "comisiones", "iniciativas", "an", "periodo", "puntosAcuerdos"));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//dd($request->all(), 'store');
$comisiones = $request->comisiones;
$item = $request->comision;
$request_temas = $request->comisionesTema;
$temas = json_decode($request_temas[0]);
//dd($temas);
if ($request->hasFile("orden")) {
$file = $request->file("orden");
$nombre = $file->getClientOriginalName();
$path = "public/documentos/SesionComision/ordenes";
$file->storeAs($path, $nombre);
$item["orden"] = $request->file("orden")->getClientOriginalName();
}
if ($request->hasFile("acta")) {
$file = $request->file("acta");
$nombre = $file->getClientOriginalName();
$path = "public/documentos/SesionComision/actas";
$file->storeAs($path, $nombre);
$item["acta"] = $request->file("acta")->getClientOriginalName();
}
if ($request->hasFile("version")) {
$file = $request->file("version");
$nombre = $file->getClientOriginalName();
$path = "public/documentos/SesionComision/versiones";
$file->storeAs($path, $nombre);
$item["version"] = $request->file("version")->getClientOriginalName();
}
if(count($comisiones) > 1){
$item["id_comision"] = json_encode($comisiones);
$item["comision_unida"] = 1;
}else{
$item["id_comision"] = $comisiones[0];
$item["comision_unida"] = 0;
}
$evento = CddSesionComision::create($item);
foreach ($temas as $value) {
$temaSC = CddTemasSesionComision::create([
"legislatura" => $evento->legislatura,
"id_sesiones_comision" => $evento->id,
"tema" => $value->tema,
"tipo" => $value->tipo,
"created_at" => now(),
"updated_at" => now(),
]);
if(count($value->subtema)){
foreach ($value->subtema as $data) {
CddSubtemas::create([
"id_tema" => $temaSC->id,
"subtema" => $data
]);
}
}
}
return redirect()->route("mcg.comisiones.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 \Illuminate\Http\Response
*/
public function edit($id)
{
$id = base64_decode(base64_decode($id));
$comision = CddSesionComision::find($id);
$comisiones = Arr::pluck(CddComisiones::all(), "nombre", "id" );
$iniciativas = Arr::pluck(CddIniciativas::where('categoria','Iniciativa')->get(), "iniciativa", "id" );
$puntosAcuerdos = Arr::pluck(CddIniciativas::where('categoria','Punto de Acuerdo')->get(), "iniciativa", "id" );
$last = CddSesiones::orderBy("sesion", "DESC")->first();
$last = $last->sesion + 1;
$temas = $comision->temas;
$an = Arr::pluck(TipoSesion::all(), "valor", "id" );
$periodo = Arr::pluck(TipoPeriodo::all(), "valor", "id" );
/*foreach ($comision->temas as $value) {
$temas[] = $value->tema;
}
json_encode($temas);*/
//dd($temas[1]->subTemas);
return view('Administrador.comisiones.edit', compact('comision', 'comisiones', 'last', 'temas', 'iniciativas', 'an', 'periodo', 'puntosAcuerdos'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$id = base64_decode(base64_decode($id));
$comision = CddSesionComision::find($id);
$comisiones = $request->comisiones;
$item = $request->comision;
$request_temas = $request->comisionesTema;
// foreach ($comision->temas as $value) {
// $value->subTemas()->delete();
// }
// $temasAnterior = $comision->temas()->delete();
// $comision->votaciones()->delete();
$temas = json_decode($request_temas[0]);
//dd($temas);
if ($request->hasFile("orden")) {
Storage::disk('public')->delete('documentos/SesionComision/ordenes/'.$comision->orden);
$file = $request->file("orden");
$nombre = $file->getClientOriginalName();
$path = "public/documentos/SesionComision/ordenes";
$file->storeAs($path, $nombre);
$item["orden"] = $request->file("orden")->getClientOriginalName();
}
if ($request->hasFile("acta")) {
Storage::disk('public')->delete('documentos/SesionComision/ordenes/'.$comision->acta);
$file = $request->file("acta");
$nombre = $file->getClientOriginalName();
$path = "public/documentos/SesionComision/actas";
$file->storeAs($path, $nombre);
$item["acta"] = $request->file("acta")->getClientOriginalName();
}
if ($request->hasFile("version")) {
Storage::disk('public')->delete('documentos/SesionComision/ordenes/'.$comision->version);
$file = $request->file("version");
$nombre = $file->getClientOriginalName();
$path = "public/documentos/SesionComision/versiones";
$file->storeAs($path, $nombre);
$item["version"] = $request->file("version")->getClientOriginalName();
}
if(count($comisiones) > 1){
$item["id_comision"] = json_encode($comisiones);
$item["comision_unida"] = 1;
}else{
$item["id_comision"] = $comisiones[0];
$item["comision_unida"] = 0;
}
$comision->update($item);
/*foreach ($temas as $value) {
$temaSC = CddTemasSesionComision::create([
"legislatura" => $comision->legislatura,
"id_sesiones_comision" => $comision->id,
"tema" => $value->tema,
"tipo" => $value->tipo,
"created_at" => now(),
"updated_at" => now(),
]);
if(count($value->subtema)){
foreach ($value->subtema as $data) {
CddSubtemas::create([
"id_tema" => $temaSC->id,
"subtema" => $data
]);
}
}
}*/
return redirect()->route("mcg.comisiones.index");
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$id = base64_decode(base64_decode($id));
$comision = CddSesionComision::find($id);
foreach ($comision->temas as $value) {
$value->subTemas()->delete();
}
$comision->temas()->delete();
$comision->asistencias()->delete();
$comision->votaciones()->delete();
$comision->delete();
return redirect()->route("mcg.comisiones.index");
}
public function asistencia($id)
{
$id = base64_decode(base64_decode($id));
$comision = CddSesionComision::find($id);
$estatus = [
1 => "Asistencia",
2 => "Inasistencia",
3 => "Justificación",
];
if($comision->comision_unida){
$idcomisiones = json_decode($comision->id_comision);
if(count($comision->asistencias)){
foreach ($idcomisiones as $value) {
$presidente = $comision->asistencias()->where('id_comision', $value)->where('cargo','=','Presidente')->first();
$secretario = $comision->asistencias()->where('id_comision', $value)->where('cargo','=','Secretario')->first();
$prosecretario = $comision->asistencias()->where('id_comision', $value)->where('cargo','=','Prosecretario')->first();
$integrantes = $comision->asistencias()->where('id_comision', $value)->where('cargo','=','Miembro')->orderBy('id', 'ASC')->get();
$integrantes->prepend($prosecretario);
$integrantes->prepend($secretario);
$integrantes->prepend($presidente);
$diputados[$value] = $integrantes;
//
}
}else{
foreach ($idcomisiones as $value) {
$presidente = CddIntegrantesLXI::where('id_comision', $value)->where('cargo','=','Presidente')->first();
$secretario = CddIntegrantesLXI::where('id_comision', $value)->where('cargo','=','Secretario')->first();
$prosecretario = CddIntegrantesLXI::where('id_comision', $value)->where('cargo','=','Prosecretario')->first();
$integrantes = CddIntegrantesLXI::where('id_comision', $value)->where('cargo','=','Miembro')->orderBy('id', 'ASC')->get();
$integrantes->prepend($prosecretario);
$integrantes->prepend($secretario);
$integrantes->prepend($presidente);
$diputados[$value] = $integrantes;
}
}
$comisionesAsis = CddComisiones::whereIn("id", $idcomisiones)->get();
}else{
if(count($comision->asistencias)){
$presidente = $comision->asistencias()->where('id_comision', $comision->id_comision)->where('cargo','=','Presidente')->first();
$secretario = $comision->asistencias()->where('id_comision', $comision->id_comision)->where('cargo','=','Secretario')->first();
$prosecretario = $comision->asistencias()->where('id_comision', $comision->id_comision)->where('cargo','=','Prosecretario')->first();
$integrantes = $comision->asistencias()->where('id_comision', $comision->id_comision)->where('cargo','=','Miembro')->orderBy('id', 'ASC')->get();
$integrantes->prepend($prosecretario);
$integrantes->prepend($secretario);
$integrantes->prepend($presidente);
//$diputados[$value] = CddDiputadosLxi::whereIn("id", $asistenciasDip )->withTrashed()->get();
$diputados[$comision->id_comision] = $integrantes;
//dd($diputados);
}else{
$presidente = CddIntegrantesLXI::where('id_comision', $comision->id_comision)->where('cargo','=','Presidente')->first();
$secretario = CddIntegrantesLXI::where('id_comision', $comision->id_comision)->where('cargo','=','Secretario')->first();
$prosecretario = CddIntegrantesLXI::where('id_comision', $comision->id_comision)->where('cargo','=','Prosecretario')->first();
$integrantes = CddIntegrantesLXI::where('id_comision', $comision->id_comision)->where('cargo','=','Miembro')->orderBy('id', 'ASC')->get();
$integrantes->prepend($prosecretario);
$integrantes->prepend($secretario);
$integrantes->prepend($presidente);
//$diputados[$comision->id_comision] = CddDiputadosLxi::where('status', 'activo')->whereIn("id", $integrantes->pluck('id_diputado') )->withTrashed()->get();
$diputados[$comision->id_comision] = $integrantes;
}
$comisionesAsis = CddComisiones::where('id',$comision->id_comision)->get();
}
$dip = CddDiputadosLxi::withTrashed()->get();
//dd($diputados);
return view("Administrador.comisiones.asistencia.edit", compact("diputados", "comision", "estatus", "dip", "comisionesAsis"));
}
public function saveAsistencia(Request $request, $id)
{
$data = $request->except("_method", "_token");
$comision = CddSesionComision::find(base64_decode(base64_decode($id)));
$comision->asistencias()->delete();
$eliminados = [];
foreach ($data as $key => $item) {
$idDiputado = base64_decode(base64_decode($key));
foreach ($item as $key => $value) {
if(substr($value,0,2) === "0-"){
$comS = substr($value,2);
unset($item[$key]);
$eliminados[$idDiputado] = $comS;
//array_push($eliminados, $comS);
}
}
$votos = array_chunk($item, 3);
foreach ($votos as $datos) {
$clave = array_search($datos[1], $eliminados);
$dipKey = array_key_exists($idDiputado, $eliminados);
if($clave == false && $dipKey == false || $clave == false && $dipKey == true){
$data = [
"id_diputado" => $idDiputado,
"asistencia" => $datos[0],
"legislatura" => "LXII",
"id_comision" => $datos[1],
"cargo" => $datos[2]
];
$comision->asistencias()->create($data);
}
}
$eliminados = [];
}
return redirect()->route("mcg.comisiones.index");
}
public function comisionesUnidas($id)
{
$comision = CddSesionComision::find($id);
$idcomisiones = json_decode($comision->id_comision);
$comisiones = CddComisiones::whereIn("id", $idcomisiones)->get();
$nombre = [];
foreach ($comisiones as $item) {
$nombre[] = $item->nombre;
}
return $nombre;
}
public function votaciones($id,$control)
{
$id = base64_decode(base64_decode($id));
$control = base64_decode(base64_decode($control));
$separada = explode('/', $control);
$comision = CddSesionComision::find($id);
$temas = $comision->temas;
$subtemas = CddSubtemas::where('id_tema',$control)->get();
$control = $separada;
$estatus = [
1 => "Favor",
2 => "Contra",
3 => "Abstencion",
4 => "Sin registro",
];
//dd($control);
if($control[0] != 0){
if($comision->comision_unida){
$idcomisiones = json_decode($comision->id_comision);
foreach ($idcomisiones as $value) {
//$asistenciasDip = $comision->asistencias()->where('asistencia',1)->where('id_comision',$value)->get();
$presidente = $comision->asistencias()->where('asistencia',1)->where('id_comision',$value)->where('cargo','=','Presidente')->first();
$secretario = $comision->asistencias()->where('asistencia',1)->where('id_comision',$value)->where('cargo','=','Secretario')->first();
$prosecretario = $comision->asistencias()->where('asistencia',1)->where('id_comision',$value)->where('cargo','=','Prosecretario')->first();
$integrantes = $comision->asistencias()->where('asistencia',1)->where('id_comision',$value)->where('cargo','=','Miembro')->orderBy('id', 'ASC')->get();
$integrantes->prepend($prosecretario);
$integrantes->prepend($secretario);
$integrantes->prepend($presidente);
//$diputados[$value] = CddDiputadosLxi::whereIn("id", $asistenciasDip )->withTrashed()->get();
$diputados[$value] = $integrantes;
}
}else{
$asistenciasDip = $comision->asistencias()->where('asistencia',1)->get()->pluck('id_diputado');
$diputados[$comision->id_comision] = CddDiputadosLxi::whereIn("id", $asistenciasDip )->withTrashed()->get();
// $asistenciasDip = $comision->asistencias()->where('asistencia',1)->where('id_comision',$value)->get();
$presidente = $comision->asistencias()->where('asistencia',1)->where('cargo','=','Presidente')->first();
$secretario = $comision->asistencias()->where('asistencia',1)->where('cargo','=','Secretario')->first();
$prosecretario = $comision->asistencias()->where('asistencia',1)->where('cargo','=','Prosecretario')->first();
$integrantes = $comision->asistencias()->where('asistencia',1)->where('cargo','=','Miembro')->orderBy('id', 'ASC')->get();
$integrantes->prepend($prosecretario);
$integrantes->prepend($secretario);
$integrantes->prepend($presidente);
//$diputados[$value] = CddDiputadosLxi::whereIn("id", $asistenciasDip )->withTrashed()->get();
$diputados[$comision->id_comision] = $integrantes;
}
}else{
$diputados = [];
}
return view("Administrador.comisiones.votaciones.tema", compact("comision", "temas", "diputados", "estatus", "control", "subtemas"));
}
public function saveVotaciones(Request $request, $id)
{
//dd($request->all());
$data = $request->except("_method", "_token");
$comision = CddSesionComision::find(base64_decode(base64_decode($id)));
$tipo = $data["tipo"];
unset($data["tipo"]);
//dd($data);
foreach ($data as $key => $item) {
$idDiputado = base64_decode(base64_decode($key));
$votos = array_chunk($item, 4);
foreach ($votos as $datos) {
$votos = $comision->votaciones()->where("id_diputado", $idDiputado)->where('id_comision',$datos[1])->where('tema',$datos[3])->first();
$data = [
"id_diputado" => $idDiputado,
"voto" => $datos[0],
"legislatura" => "LXII",
"tema" => $datos[3],
"id_comision" => $datos[1],
"tipo_tema" => $tipo
];
if (!$votos) {
$comision->votaciones()->create($data);
} else {
$votos->update($data);
}
}
}
return redirect()->route("mcg.comisiones.index");
}
public function ComisionNombre($com)
{
$comision = CddComisiones::find($com);
if(!$comision){
dd($com);
}
return $comision->nombre;
}
public function ComisionUnidaNombre($comision)
{
$comision = CddSesionComision::find($comision);
if($comision->comision_unida == 0){
return $comision->comision->nombre;
}else{
$llaves = json_decode($comision->id_comision);
foreach($llaves as $item){
$comision = CddComisiones::find($item);
$nombre[] = $comision->nombre;
}
return $nombre;
}
}
public function getDiputado($id)
{
$diputado = CddDiputadosLxi::withTrashed()->with('partido')->get()->find($id);
//dd($diputado);
return $diputado;
}
public function deleteReunionAsistencia($id)
{
$id = base64_decode(base64_decode($id));
$comision = CddSesionComision::find($id);
$comision->asistencias()->forceDelete();
$comision->votaciones()->forceDelete();
return redirect()->route("mcg.comisiones.index");
}
public function savetemaE(Request $request){
$evento = CddSesionComision::find($request->idSesion);
if($request->create == 1){
$temaSC = CddTemasSesionComision::create([
"legislatura" => $evento->legislatura,
"id_sesiones_comision" => $evento->id,
"tema" => $request->tema,
"tipo" => $request->tipo,
"created_at" => now(),
"updated_at" => now(),
]);
if($request->subtema){
foreach ($request->subtema as $data) {
CddSubtemas::create([
"id_tema" => $temaSC->id,
"subtema" => $data
]);
}
}
}else{
$temaSCE = CddTemasSesionComision::where('id_sesiones_comision',$evento->id)->where('tema', $request->tema)->where('tipo', $request->tipo)->first();
CddSubtemas::where('id_tema', $temaSCE->id)->delete();
$temaSCE->delete();
}
return response()->json(['status' => '200']);
}
}
OHA YOOOO