<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Aula;
use App\Encabezadopie;
use App\Exports\AulaExport;
use Barryvdh\DomPDF\Facade\Pdf;
use Maatwebsite\Excel\Facades\Excel;

class AulaController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $data = $request->all();
        if (count($data) > 0) {
            $aula = Aula::where('status_aula', '1');
            if ($data['id'] != null) {
                $aula = $aula->where('id_aula', 'like', '%' . $data['id'] . '%');
            }
            if ($data['ubicacion'] != null) {
                $aula = $aula->where('ubicacion_aula', 'like', '%' . $data['ubicacion'] . '%');
            }
            if ($data['capacidad'] != null) {
                $aula = $aula->where('capacidad_aula', 'like', '%' . $data['capacidad'] . '%');
            }
            if ($data['tipo'] != null) {
                $aula = $aula->where('tipo_aula', 'like', '%' . $data['tipo'] . '%');
            }
            $aula = $aula->get();
        } else {
            $aula = Aula::where('status_aula', '1')->get();
        }
        return view('aula.listar', compact('aula', 'data'));
    }

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

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $data = $request->all();

        Aula::create(['id_aula' => $data['id'], 'ubicacion_aula' => $data['ubicacion'], 'capacidad_aula' => $data['capacidad'], 'cruce_aula' => $data['cruce'], 'tipo_aula' => $data['tipo'], 'observaciones_aula' => $data['observaciones'], 'status_aula' => '1']);

        return response()->json(['estado' => 'Exito', 'mensaje' => 'Aula guardada con exito!']);
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $aula = Aula::where('cve_aula', $id)->first();
        return view('aula.consultar', compact('aula'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $aula = Aula::where('cve_aula', $id)->first();
        return view('aula.modificar', compact('aula'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $aula = Aula::findOrFail($id);
        $aula->id_aula = $request->id;
        $aula->ubicacion_aula = $request->ubicacion;
        $aula->capacidad_aula = $request->capacidad;
        $aula->cruce_aula = $request->cruce;
        $aula->tipo_aula = $request->tipo;
        $aula->observaciones_aula = $request->observaciones;
        $aula->save();
        return response()->json(['estado' => 'Exito', 'mensaje' => 'Aula actualizada con exito!']);
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $aula = Aula::find($id);
        $aula->status_aula = '0';
        $aula->save();

        return response()->json(['estado' => 'Exito', 'mensaje' => 'Aula eliminada con exito!']);
    }

    public function exportExcel(Request $request)
    {
        $data = $request->all();
        $id = $data['id'];
        $ubicacion = $data['ubicacion'];
        $capacidad = $data['capacidad'];
        $tipo = $data['tipo'];
        if ($id == null) {
            $id = "";
        }
        if ($ubicacion == null) {
            $ubicacion = "";
        }
        if ($capacidad == null) {
            $capacidad = "";
        }

        if ($tipo == null) {
            $tipo = "";
        }

        return Excel::download(new AulaExport($id, $ubicacion, $capacidad, $tipo), 'aulas.xlsx');
    }

    public function exportPdf(Request $request)
    {
        $data = $request->all();
        $id = $data['id'];
        $ubicacion = $data['ubicacion'];
        $capacidad = $data['capacidad'];
        $tipo = $data['tipo'];
        $pdf = "";

        $enca = Encabezadopie::max('cve_encpie');
        $enca = Encabezadopie::where('cve_encpie', $enca)->first();
        if ($id == "" && $ubicacion == "" && $capacidad == "" && $tipo == "") {
            $pdf = Pdf::loadView('aula.tablapdf', ['aula' => Aula::where('status_aula', '1')->get(), 'enca' => $enca]);
        } else {
            $aula = Aula::where('status_aula', '1');
            if ($id != "") {
                $aula = $aula->where('id_aula', 'like', '%' . $id . '%');
            }
            if ($ubicacion != "") {
                $aula = $aula->where('ubicacion_aula', 'like', '%' . $ubicacion . '%');
            }
            if ($capacidad != "") {
                $aula = $aula->where('capacidad_aula', 'like', '%' . $capacidad . '%');
            }
            if ($tipo != "") {
                $aula = $aula->where('tipo_aula', 'like', '%' . $tipo . '%');
            }
            $aula = $aula->get();
            $pdf = Pdf::loadView('aula.tablapdf', ['aula' => $aula, 'enca' => $enca]);
        }

        return $pdf->download('aula.pdf');
    }
}
