<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Models\Recibo;
use Barryvdh\DomPDF\Facade\Pdf;

class ReciboController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
        $r = Recibo::orderBy('id', 'desc')->paginate(10);

        return view('recibo.index', compact('r'));
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        return view('recibo.create');
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        $r = Recibo::create($request->except('fecha'));

        $fecha = $this->formatDate($request->fecha);

        $r->update(['fecha' => $fecha]);

        return redirect('recibo');
    }

    /**
     * Display the specified resource.
     */
    public function show(string $id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(string $id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, string $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(string $id)
    {
        //
    }

    // Función que imprime el recibo en formato PDF
    public function generar_recibo($id)
    {
        $r = Recibo::find($id);
        //return view('recibo.pdf2');

        $pdf = \PDF::loadView('recibo.pdf', ['r' => $r]);

        //$pdf->setPaper('a4', 'landscape');

        return $pdf->stream('recibo_rcv_'.$r->id.'.pdf');
    }

    // Función que convierte la fecha en formato en español
    public function formatDate($date)
    {
        $meses = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
        $fecha = \Carbon\Carbon::parse($date);
        $mes = $meses[($fecha->format('n')) - 1];
        $datetime = $fecha->format('d') . ' de ' . $mes . ' de ' . $fecha->format('Y'); // Y h:i A

        return $datetime;
    }

    public function busqueda(Request $request)
    {
        //$r = Recibo::where('cliente', 'like', '%'.$request->cliente.'%')->paginate(10);
        $r = Recibo::where('id', $request->num)->paginate(10);

        return view('recibo.index', compact('r'));
    }

    public function iniciar_sesion(Request $request)
    {
        if ($request->psw === env('LOGIN_PASSWORD'))
        {
            return redirect('recibo');
        }
        else
        {
            session()->flash('danger', 'La contraseña es incorrecta.');
            return redirect('/');
        }
    }
}