MINI MINI MANI MO

Path : /var/www/html/sistemas/spid/app/Http/Controllers/
File Upload :
Current File : /var/www/html/sistemas/spid/app/Http/Controllers/AsistenciasController.php

<?php

namespace App\Http\Controllers;


use App\Commission;
use App\Models\asistenciaVotos;
use App\Models\EventoVotos;
use App\Models\Validacion;
use App\Models\temasVotos;
use App\Models\mensajesVotos;
use Barryvdh\DomPDF\Facade as PDF;
use Carbon\Carbon;
use Dflydev\DotAccessData\Data;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use PhpParser\Node\Stmt\DeclareDeclare;

class AsistenciasController extends Controller
{
    private $request;

    public function __construct(Request $request) {
        $this->request=$request;
        $this->middleware('auth');
    }

    public function index()
    {
        if (auth()->user()->DatosUsers->tipo_usuario == 1) {
            $date = Carbon::now();
            $date = $date->format('Y-m-d');
            $evento = EventoVotos::where('estatus', 1)->get();
            $eventoActivo = EventoVotos::where('estatus', 1)->get();
            //  $asistencias = asistenciaVotos::where('status',1)->where('randomEvento',$evento[0]->random)->get();
            $asistencias = DB::select('SELECT a.mensaje, d.nombre, d.ap_pat, d.ap_mat, a.tiempoVotacion, a.id, d.g_parlamentario as partido
                            FROM asistencia_votos AS a, datos_users AS d
                            WHERE d.`id`=a.`id_diputado` AND a.status=1 AND a.randomEvento ="' . $evento[0]->random . '" order by d.ap_pat, d.ap_mat ASC');
            $validacion = Arr::pluck(Validacion::all(), "validacion", "id");
            $tot = 0;
            if (count($evento) == 1) {
                if (count($asistencias) == 0) {
                    return view("asistenciasVotos.create", compact('evento', 'validacion'));
                } else {
                    foreach ($asistencias as $asistencia) {
                        if ($asistencia->mensaje == 'ASISTENCIA') {
                            $tot = $tot + 1;
                        }
                    }
                    return view("asistenciasVotos.verAsistencias", compact('asistencias', 'eventoActivo', 'date', 'tot'));
                }
            } else {
                return redirect()->route("sesionVotos.index", compact('tot'));
            }
        }else{
            return redirect('cerrar');
        }
    }

    public function store(Request $request)
    {
        $UsuarioRegistro = auth()->user();
    //    dd($UsuarioRegistro);
        $datos = $request->except('_token', '_method');
        date_default_timezone_set('America/Mexico_City');
        $timestam = date('Y-m-d H:i:s');
        $FechaStr = date("m-d-Y H:i:s"); // Fecha Actual y m d
        $FechaHoy = $FechaStr;
        $FechaStr = str_replace("-", " ", $FechaStr);
        $FechaStr = str_replace(":", " ", $FechaStr);
        $FechaOrigen = explode(" ", $FechaStr);
        $Dia = $FechaOrigen[1];
        $Mes = $FechaOrigen[0];
        $Ano = $FechaOrigen[2];
        $Horas = $FechaOrigen[3];
        $Minutos = $FechaOrigen[4];
        $Segundos = $FechaOrigen[5];
// Sumo los minutos
        $Minutos = ((int)$Minutos) + ((int)$datos['tiempo']);
// Asigno la fecha modificada a una nueva variable
        $FechaNueva = date("Y-m-d H:i:s",mktime($Horas,$Minutos,$Segundos,$Mes,$Dia,$Ano));

        $date = Carbon::now();
        $date = $date->format('Y-m-d');
        $tot = 0;

        if ($datos['validacion'] == 1) {
            $eventoActivo = EventoVotos::where('estatus', 1)->get();
            $votoActivo = temasVotos::where('status',1)->get();

            if (count($votoActivo)){
                foreach ($votoActivo as $votoAct) {
                    $temas = temasVotos::find($votoAct->id);
                    $tema["status"] = 0;
                //    $tema["usuario_termina"] = $UsuarioRegistro;
                    $temas->update($tema);
                }
            }

            $mensajeVotoa = mensajesVotos::where('status',1)->get();
            if (count($mensajeVotoa)){
                foreach ($mensajeVotoa as $mensajeV) {
                    $votos = mensajesVotos::find($mensajeV->id);
                    $voto["status"] = 0;
                  //  $voto["usuario_termina"] = $UsuarioRegistro;
                    $votos->update($voto);
                }
            }

            $asistenciass = asistenciaVotos::where('randomEvento', $eventoActivo[0]->random)->get();

            foreach ($asistenciass as $asist) {
                $asiste["status"] = 1;
                $asiste["mensaje"] = 'PENDIENTE';
                $asiste["tiempoVotacionInicio"] = $timestam;
                $asiste["tiempoVotacion"] = $FechaNueva;
             //   $asiste["usuario_inicia"] = $UsuarioRegistro;
                $asist->update($asiste);
            }

            //   dd('asist');
            return redirect()->route("verAsistencias");
            //return redirect()->route("asistenciasVotos.verAsistencias", compact('asistencias', 'eventoActivo', 'date','tot'));
        }
    }

    public function asistencia(Request $request)
    {
        $UsuarioRegistro = auth()->user()->id;
  //      dd($UsuarioRegistro);
        $asistencia = asistenciaVotos::find($request->id);

        $asiste["mensaje"] = 'ASISTENCIA';
        $asiste["usuario_registra"] = $UsuarioRegistro;
        $asistencia->update($asiste);
    }

    public function inasistencia(Request $request)
    {
      //  $UsuarioRegistro = auth()->user()->DatosUsers->id;
        $asistencia = asistenciaVotos::find($request->id);
        $asiste["mensaje"] = 'PENDIENTE';
       // $asiste["usuario_registra"] = $UsuarioRegistro;
        $asistencia->update($asiste);
    }

    public function terminarAsistencia(Request $request)
    {
       // $UsuarioRegistro = auth()->user()->DatosUsers->id;
        $eventoActivo = EventoVotos::where('estatus',1)->get();
        $asistencias = asistenciaVotos::where('randomEvento',$eventoActivo[0]->random)->where('status',1)->get();
        foreach ($asistencias as $asistencia) {
            $asiste["status"] = 2;
       //     $asiste["usuario_termina"] = $UsuarioRegistro;
            $asistencia->update($asiste);
        }
        dd('termine');
    }

    public function reiniciarAsistencia(Request $request)
    {
    //    $UsuarioRegistro = auth()->user()->DatosUsers->id;
        $eventoActivo = EventoVotos::where('estatus',1)->get();
        $asistencias = asistenciaVotos::where('randomEvento',$eventoActivo[0]->random)->get();
        foreach ($asistencias as $asistencia) {
            $asiste["status"] = 1;
            $asiste["mensaje"] = 'PENDIENTE';
        //    $asiste["usuario_reinicia"] = $UsuarioRegistro;
            $asistencia->update($asiste);
        }
    }

    public function imprimirAsist(){
        $randomEvento =  EventoVotos::where('estatus',1)->get();
//        $asistencias = asistenciaVotos::where('randomEvento',$randomEvento[0]->random)->get();
        $asistencias = DB::select('SELECT a.mensaje, d.nombre, d.ap_pat, d.ap_mat, d.g_parlamentario as partido, a.created_at as created_at
         FROM asistencia_votos AS a, datos_users AS d
         WHERE d.`id`=a.`id_diputado` AND a.randomEvento ="'.$randomEvento[0]->random .'" order by d.ap_pat, d.ap_mat ASC');
        $asistenciasAS = asistenciaVotos::where('randomEvento',$randomEvento[0]->random)->where('mensaje','ASISTENCIA')->get();
        $asistenciasPE = asistenciaVotos::where('randomEvento',$randomEvento[0]->random)->where('mensaje','PENDIENTE')->get();

        $pdf = PDF::loadView('asistenciasVotos.imprimeAsistencias', compact('randomEvento','asistencias','asistenciasAS','asistenciasPE'));
        return $pdf->stream('pdf_file.pdf');
    }

    public function verAsistencias(){
        $tot = 0;
        $eventoActivo = EventoVotos::where('estatus', 1)->get();

        $asistencias = DB::select('SELECT a.mensaje, d.nombre, d.ap_pat, d.ap_mat, a.tiempoVotacion, a.id, d.g_parlamentario as partido  FROM asistencia_votos AS a, datos_users AS d WHERE d.`id`=a.`id_diputado` AND a.status=1 AND a.randomEvento ="'.$eventoActivo[0]->random .'" order by d.ap_pat, d.ap_mat ASC');
        foreach ($asistencias as $asistencia){
            if($asistencia->mensaje == 'ASISTENCIA'){
                $tot = $tot +1;
            }
        }
        return view("asistenciasVotos.verAsistencias", compact('asistencias', 'eventoActivo','tot'));
    }
}

OHA YOOOO