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/VotosController.php

<?php

namespace App\Http\Controllers;


use App\Models\ComisionUsuario;
//use App\Models\Commission;
use App\Models\DatosUsers;
use App\Models\EventoVotos;
use App\Models\mensajesVotos;
use App\Models\asistenciaVotos;

use App\Models\temasVotos;
use Barryvdh\DomPDF\Facade as PDF;
use Carbon\Carbon;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class VotosController 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) {
            //   $UsuarioRegistro = auth()->user()->DatosUsers->id;
            $hora = date('H:i:s');
            $dia = date('Y-m-d');
            $eventoActual = EventoVotos::where('estatus', 1)->get();
            $tema = temasVotos::where('status',1)->first();
            $votacion = DB::select('SELECT a.mensaje as mensaje, d.nombre as nombre, d.ap_pat as ap_pat, d.ap_mat as ap_mat,  a.id as id, d.g_parlamentario as partido
                        FROM mensajes_votos AS a, datos_users AS d
                        WHERE d.`id`=a.`id_diputado` AND a.status=1
                        order by d.ap_pat, d.ap_mat ASC');

            if (count($votacion) == 0) {
                return view("votaciones.create");
            } else {
                return view("votaciones.verVotos", compact('votacion', 'eventoActual', 'dia', 'hora','tema'));
            }
        }else{
            return redirect('cerrar');
        }
    }

    public function store(Request $request)
    {
       // $UsuarioRegistro = auth()->user()->DatosUsers->id;
        $datos = $request->except('_token','_method');
        date_default_timezone_set('America/Mexico_City');
        $timestam = date('Y-m-d H:i:s');
        $dia = date('Y-m-d');
        $eventoActual = EventoVotos::where('estatus',1)->get();
        $asistencias = asistenciaVotos::where('status',1)->where('randomEvento',$eventoActual[0]->random)->get();


        $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['tiempoVotacion']);
// Asigno la fecha modificada a una nueva variable
        $FechaNueva = date("Y-m-d H:i:s",mktime($Horas,$Minutos,$Segundos,$Mes,$Dia,$Ano));

        foreach ($asistencias as $asistencis){
            foreach ($asistencis as $asistencia) {
                $asis = asistenciaVotos::find($asistencia->id);
                $asiste["status"] = 2;
       //         $asiste["usuario_termina"] = $UsuarioRegistro;
                $asis->update($asiste);
            }
        }

        $votos["votacion"] = $datos['votacion'];
        $votos["status"] = 1;
        $votos["fechaVotacion"] = $dia;
        $votos["randomEvento"] = $eventoActual[0]->random;
        $votos["tiempoVotacion"] = $FechaNueva;
        $votos["tiempoVotacionInicio"] = $timestam;
 //       $votos["usuario_inicia"] = $UsuarioRegistro;
        $asistenciaVotos = temasVotos::create($votos);

        if($eventoActual[0]->tipoEvento != 'jo7uWqChe'){
            $idComision = Commission::where('random',$eventoActual[0]->tipoEvento)->get();
            $listadoDiputados = ComisionUsuario::where('id_commission',$idComision[0]->id)->get();
        }else{
            $listadoDiputados = DatosUsers::where('status',1)->where('tipo_usuario',2)->orderBy('ap_pat', 'ASC')->get();
        }
        $caracteres = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"; //posibles caracteres a usar
        $numerodeletras = 9; //numero de letras para generar el texto
        $RandomVotacion = ""; //variable para almacenar la cadena generada
        for ($i = 0; $i < $numerodeletras; $i++) {
            $RandomVotacion .= substr($caracteres, rand(0, strlen($caracteres)), 1);
        }

        foreach ($listadoDiputados as $id_diputado) {

         //   dd($id_diputado);
            $mensajes['mensaje']= 'SIN REGISTRO';
            $mensajes['timestamp']= $timestam;
            $mensajes['status']= 1;
            $mensajes['tipo']= 1;
            $mensajes['id_votacion']= $asistenciaVotos->id;
            $mensajes['id_diputado']= $id_diputado->id;
            $mensajes['votacion']= $RandomVotacion;
            $mensajes['randomEvento']= $eventoActual[0]->random;
          //  $mensajes['usuario_inicia']= $UsuarioRegistro;
            $votos =  mensajesVotos::create($mensajes);
        }
        return redirect()->route("votos.index");
    }

    public function imprimirvotos(){
        $randomEvento =  EventoVotos::where('estatus',1)->get();
       // $comision = Commission::where('random',$randomEvento[0]->tipoEvento)->get();
        $temas = temasVotos::where('randomEvento',$randomEvento[0]->random)->where('status',1)->get();
        $sinregistro = mensajesVotos::where('status',1)->where('mensaje','SIN REGISTRO')->get();
        $abstencion = mensajesVotos::where('status',1)->where('mensaje','ABSTENCION')->get();
        $contra = mensajesVotos::where('status',1)->where('mensaje','CONTRA')->get();
        $favor = mensajesVotos::where('status',1)->where('mensaje','FAVOR')->get();
        $votacion = mensajesVotos::where('status',1)->get();
        $votacion = DB::select('SELECT v.mensaje,  d.nombre, d.ap_pat, d.ap_mat, d.g_parlamentario AS partido
            FROM mensajes_votos AS v, datos_users AS d
             WHERE d.`id`=v.`id_diputado` AND v.status=1  ORDER BY d.ap_pat, d.ap_mat ASC');

        $sinregistro = count($sinregistro);
        $abstencion = count($abstencion);
        $contra = count($contra);
        $favor = count($favor);

        $date =Carbon::parse($randomEvento[0]->fechaEvento)->format('Y-m-d');
        $pdf = PDF::loadView('votaciones.imprimirTotalVotos', compact('date','votacion','sinregistro','abstencion','contra','favor','randomEvento','temas'));
        return $pdf->stream('pdf_file.pdf');
       // dd('si');
    }

    public function consenso(Request $request)
    {
        $UsuarioRegistro = auth()->user()->id;
        $votos = mensajesVotos::find($request->id);
        $voto["mensaje"] = 'FAVOR';
       $voto["usuario_registra"] = $UsuarioRegistro;
        $votos->update($voto);
    }

    public function disenso(Request $request)
    {
        $UsuarioRegistro = auth()->user()->id;
        $votos = mensajesVotos::find($request->id);
        $voto["mensaje"] = 'CONTRA';
       $voto["usuario_registra"] = $UsuarioRegistro;
        $votos->update($voto);
    }

    public function abstencion(Request $request)
    {
        $UsuarioRegistro = auth()->user()->id;
        $votos = mensajesVotos::find($request->id);
        $voto["mensaje"] = 'ABSTENCION';
        $voto["usuario_registra"] = $UsuarioRegistro;
        $votos->update($voto);
    }

    public function sinRegistro(Request $request)
    {
        $UsuarioRegistro = auth()->user()->id;
        $votos = mensajesVotos::find($request->id);
        $voto["mensaje"] = 'SIN REGISTRO';
        $voto["usuario_registra"] = $UsuarioRegistro;
        $votos->update($voto);
    }

    public function terminarVotacion(Request $request)
    {
        $UsuarioRegistro = auth()->user()->id;
        $votacion = mensajesVotos::where('status',1)->get();
        foreach ($votacion as $votos){
            $voto["status"] = 0;
            $voto["usuario_termina"] = $UsuarioRegistro;
            $votos->update($voto);
        }
        $temaVotacion = temasVotos::where('status',1)->get();
        foreach ($temaVotacion as $temas){
            $tema["status"] = 0;
            $tema["usuario_termina"] = $UsuarioRegistro;
            $temas->update($tema);
        }
    }

    public function update(Request $request, $id)
    {
        $datos = $request->except('_token', '_method');
        $vot = temasVotos::find($id);
        $vot->update($datos);
        return redirect('registros');
    }
}

OHA YOOOO