<?php

namespace App\Http\Controllers;

use App\Models\Progetti;
use App\Models\User;
use Illuminate\Http\Request;
use App\Models\RigaProgetto;
use App\Models\GenDoc;
use function GuzzleHttp\json_encode;
use Barryvdh\DomPDF\Facade\Pdf;

class ProgettiController extends Controller
{
    //
    public function listaProgetto()
    {
          /* $progetti=Progetti::getProgetti();
        dd($progetti);*/
     return view('progetti.list',[
            'progetti'=>Progetti::getProgetti()
        ]);
    }

    public function nuovoProgetto()
    {
        return view('progetti.new',['coordinatori'=>User::getUsers()]);
    }

    public function getCoordinatori()
    {
        return json_encode(User::getUsers());
    }

    public function salvaProgetto(Request $request)
    {
        Progetti::saveProgetto($request);
        return redirect(Route('progetti'));
    }

    public function deleteProgetto(Request $param) {
        Progetti::delProgetto($param['id']);
        return redirect(Route('progetti'));
    }


    public function dettaglioProgetto($id)
    {
        $progetto_id=$id;
        $progetto = Progetti::getProgettoById($progetto_id);
        $righe = RigaProgetto::getRigheProgetto($progetto_id);
        $costo_tot=RigaProgetto::getCostoRighe($progetto_id);
        return view('progetti.dettaglio',['dettaglio'=>$progetto, 'righe'=>$righe, 'tot'=>$costo_tot]);
        //dd($righe);
    }

    public function chiudiProgetto(Request $id)
    {
        Progetti::chiudiProgetto($id['id']);
        return redirect(Route('progetti'));
    }

    public function riapriProgetto(Request $id)
    {
        Progetti::riapriProgetto($id['id']);
        return redirect(Route('progetti'));
    }

    public function stampaPDFProgetto(Request $id)
    {
        $progetto_id=$id['id'];
        $progetto = Progetti::getProgettoById($progetto_id);
        $righe = RigaProgetto::getRigheProgetto($progetto_id);
        $costo_tot=RigaProgetto::getCostoRighe($progetto_id);
        $pdf=Pdf::loadview('progetti.PDF.scheda',['dettaglio'=>$progetto,'righe'=>$righe, 'tot'=>$costo_tot]);  
        return $pdf->stream();
    }

    public function documentoProgetto(Request $request)
    {
        $documenti = GenDoc::listDocument(3,$request->input('entity_id'));
           
        return view('conti.documenti.insert', [
            'id'=>$request->input('entity_id'),
            'entity'=>$request->input('entity'),
            'documenti'=>$documenti
        ]);
        
    }

    public function modificaProgetto(Request $data)
    {
        // funzione di modifica del progetto (form inserimento modificato in js)
        Progetti::where('id', $data['id'])
                ->update([
                    'nome' => $data['nome'],
                    'descrizione' => $data['descrizione'],
                    //'data_creazione'=>$data['data_creazione'],
                    'data_inizio'=>$data['data_inizio'],
                    'data_fine'=>$data['data_fine'],
                    'fk_user'=>$data['coordinatore'],
                    'budget'=>$data['budget'],
                    'stato'=>$data['stato'],
                    'note' =>$data['note'],
                    ]);
            return redirect()->back();
                       /* dd($data);*/
    }

    public function getProgettobyId(Request $id)
    {
        return json_encode(Progetti::getProgettoById($id['id']));
    }

}
