MINI MINI MANI MO

Path : /var/www/html/sistemas/archivodigital/app/Http/Controllers/
File Upload :
Current File : /var/www/html/sistemas/archivodigital/app/Http/Controllers/ReportesController.php

<?php

namespace App\Http\Controllers;

use App\Exports\consentradoExport;
use App\Exports\PermisosExport;
use App\Models\DepartamentosCentralizada;
use App\Models\Direccion;
use App\Models\Registro;
use App\Models\RegistroAtencion;
use App\Models\S_UsersCentralizada;
use App\Models\TipoAtencions;
use App\Models\UsuariosCentralizada;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Facades\Excel;
use PhpParser\Node\Stmt\DeclareDeclare;

class ReportesController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    private $request;
    public function __construct(Request $request) {
        $this->request=$request;
        $this->middleware('auth');
    }

    public function index()
    {
        return view('reportes.show');
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $UsRFC = auth()->user()->id;
        $busqueda = $request->except('_token');
        $fInic = explode("-", $busqueda['ini']);
        $fIni = $fInic[2].'-'.$fInic[1].'-'.$fInic[0];

        $fFinn = explode("-", $busqueda['fin']);
        $fFin = $fFinn[2].'-'.$fFinn[1].'-'.$fFinn[0];

        $registro = [];

        $registro = Registro::where('user_registro', $UsRFC)->whereBetween('created_at',[$fIni, $fFin])->get();
        $cancelados = count(Registro::where('activo', 0)->where('user_registro', $UsRFC)->whereBetween('created_at',[$fIni, $fFin])->get());
        $concluidos = count(Registro::where('activo', 1)->where('status', 0)->where('user_registro', $UsRFC)->whereBetween('created_at',[$fIni, $fFin])->get());
        $pendientes = count(Registro::where('activo', 1)->where('status', 1)->where('user_registro', $UsRFC)->whereBetween('created_at',[$fIni, $fFin])->get());

        $direcciones = Direccion::where('id_Dependencia', 4)->where('Estado',1)->get();


        $turnoDir = [];
        foreach ($direcciones as $dir){
            $pendientesDireccion = DB::select("SELECT  DISTINCT  adminplem_saf.s_usuario.Nombre, COUNT(adminplem_archivoDigital.registro_atencions.id) AS turnos,
                    adminplem_saf.s_usuario.id_Direccion as direccion, adminplem_saf.s_users.rango as rango
                    FROM adminplem_archivoDigital.registro_atencions, adminplem_archivoDigital.registro, adminplem_saf.s_usuario, adminplem_saf.s_users
                    WHERE adminplem_saf.s_usuario.N_Usuario = adminplem_archivoDigital.registro_atencions.user_rfc AND adminplem_archivoDigital.registro_atencions.registro_id = adminplem_archivoDigital.registro.id
                    AND adminplem_saf.s_users.username = adminplem_saf.s_usuario.N_Usuario AND adminplem_saf.s_users.username = adminplem_archivoDigital.registro_atencions.user_rfc
                    AND adminplem_saf.s_usuario.id_Direccion = ".$dir->id_Direccion." AND adminplem_archivoDigital.registro_atencions.statusAtencion = 0 AND adminplem_archivoDigital.registro.created_at BETWEEN '".$fIni."'
                    AND '".$fFin."' AND adminplem_archivoDigital.registro.user_registro = ".$UsRFC."
                    GROUP BY adminplem_archivoDigital.registro_atencions.user_rfc, adminplem_saf.s_usuario.Nombre, adminplem_saf.s_users.rango
                    ORDER BY  adminplem_saf.s_users.rango asc");
            $turnoDir[] = $pendientesDireccion;
        }
        $i = 0;
        foreach ($turnoDir as $item){
            foreach ($item as $dirs) {
                if ($dirs->rango == '2' || $dirs->rango == '1') {
                    $i = $i + $dirs->turnos;
                }
            }
        }

        return view('reportes.ver', compact('registro', 'cancelados','pendientes','concluidos','fFin','fIni', 'direcciones', 'turnoDir','i'));
    }

    /**
     * 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)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }

    public function verReporteEXCEL(Request $request){
        $UsRFC = auth()->user()->id;

        $registro = Registro::where('user_registro', $UsRFC)->whereBetween('created_at',[$request['ini'], $request['fin']])->get();
        $cancelados = Registro::where('activo', 0)->where('user_registro', $UsRFC)->whereBetween('created_at',[$request['ini'], $request['fin']])->get();
        $concluidos = Registro::where('activo', 1)->where('status', 0)->where('user_registro', $UsRFC)->whereBetween('created_at',[$request['ini'], $request['fin']])->get();
        $pendientes = Registro::where('activo', 1)->where('status', 1)->where('user_registro', $UsRFC)->whereBetween('created_at',[$request['ini'], $request['fin']])->get();

        $UIPPEUs= UsuariosCentralizada::where('id_Dependencia', 4)->where('id_Direccion', 39)->where('id_Departamento', 110)->where('Estado', 1)->get();
        foreach ($UIPPEUs as $item) {
            $sUs = S_UsersCentralizada::where('username',$item->N_Usuario)->where('rango', 2)->first();
            if ($sUs){
                $UIPPE = $sUs->username;
            }
        }

        $normatividadUs = UsuariosCentralizada::where('id_Dependencia', 4)->where('id_Direccion', 40)->where('id_Departamento', 114)->where('Estado', 1)->get();
        foreach ($normatividadUs as $item2) {
            $sUs = S_UsersCentralizada::where('username',$item2->N_Usuario)->where('rango', 2)->first();
            if ($sUs){
                $normatividad = $sUs->username;
            }
        }

        $generoUs = UsuariosCentralizada::where('id_Dependencia', 4)->where('id_Direccion', 41)->where('id_Departamento', 118)->where('Estado', 1)->get();
        foreach ($generoUs as $item3) {
            $sUs = S_UsersCentralizada::where('username',$item3->N_Usuario)->where('rango', 3)->first();
            if ($sUs){
                $genero = $sUs->username;
            }
        }
        $personalUs = UsuariosCentralizada::where('id_Dependencia', 4)->where('id_Direccion', 42)->where('id_Departamento', 119)->where('Estado', 1)->get();
        foreach ($personalUs as $item4) {
            $sUs = S_UsersCentralizada::where('username',$item4->N_Usuario)->where('rango', 2)->first();
            if ($sUs){
                $personal = $sUs->username;
            }
        }
        $recursosMus = UsuariosCentralizada::where('id_Dependencia', 4)->where('id_Direccion', 43)->where('id_Departamento', 128)->where('Estado', 1)->get();
        foreach ($recursosMus as $item5) {
            $sUs = S_UsersCentralizada::where('username',$item5->N_Usuario)->where('rango', 2)->first();
            if ($sUs){
                $recursosM = $sUs->username;
            }
        }
        $finanzasUs = UsuariosCentralizada::where('id_Dependencia', 4)->where('id_Direccion', 44)->where('id_Departamento', 135)->where('Estado', 1)->get();
        foreach ($finanzasUs as $item6) {
            $sUs = S_UsersCentralizada::where('username',$item6->N_Usuario)->where('rango', 2)->first();
            if ($sUs){
                $finanzas = $sUs->username;
            }
        }
        $infoUs =  UsuariosCentralizada::where('id_Dependencia', 4)->where('id_Direccion', 45)->where('id_Departamento', 139)->where('Estado', 1)->get();
        foreach ($infoUs as $item7) {
            $sUs = S_UsersCentralizada::where('username',$item7->N_Usuario)->where('rango', 2)->first();
            if ($sUs){
                $info = $sUs->username;
            }
        }

        $particularUs =  UsuariosCentralizada::where('id_Dependencia', 4)->where('id_Direccion', 37)->where('id_Departamento', 108)->where('Estado', 1)->get();
        foreach ($particularUs as $item8) {
            $sUs = S_UsersCentralizada::where('username',$item8->N_Usuario)->where('rango', 2)->first();
            if ($sUs){
                $particular = $sUs->username;
            }
        }
        return Excel::download(new PermisosExport($registro,$cancelados,$pendientes,$concluidos, $UIPPE,$normatividad,$genero, $personal, $recursosM, $finanzas, $info, $particular), "reporte.xlsx");
    }

    public function reporteGnal(){
        return view('reportes.showGnal');
    }

    public function getReporte(Request $request){
        $UsRFC = auth()->user()->id;
        $busqueda = $request->except('_token');
        $fInic = explode("-", $busqueda['ini']);
        $fIni = $fInic[2].'-'.$fInic[1].'-'.$fInic[0];

        $fFinn = explode("-", $busqueda['fin']);
        $fFin = $fFinn[2].'-'.$fFinn[1].'-'.$fFinn[0];

        $registros = [];

        $registros = Registro::where('user_registro', $UsRFC)->whereBetween('created_at',[$fIni, $fFin])->get();

        return view('reportes.verReporte', compact('registros', 'fFin','fIni'));
    }

    public function verConsentrado(Request $request){
        $UsRFC = auth()->user()->id;
        $registros = Registro::where('user_registro', $UsRFC)->whereBetween('created_at',[$request['ini'], $request['fin']])->get();
        return Excel::download(new consentradoExport($registros), "reporte.xlsx");
    }
}

OHA YOOOO