<?php

namespace App\Http\Controllers;

use App\Area;
use App\Estado_Radicado;
use App\Http\Controllers\Controller;
use App\Radicado;
use App\Tipo_Radicado;
use Illuminate\Http\Request;

use \PDF;

use Illuminate\Support\Facades\View;

class PdfController extends Controller
{

    public function __construct()
    {
        //$this->middleware('auth');
    }
    /**
     * Create a test PDF file.
     *
     * @return void
     */
    public function createTestPdf()
    {
        PDF::SetTitle('Hello World');
        PDF::AddPage();
        PDF::Write(0, 'Hello World');
        PDF::Output('hello_world.pdf');

        echo "Fatto!";
    }

    public function ProcesaReporte(Request $request)
    {

        ini_set("memory_limit", "8000M");
        ini_set("pcre.backtrack_limit", "1000000");
        $fInicial = $request->dtpInicial;
        $fFinal = $request->dtpFinal;
        $hdEstados = $request->hdEstados;
        $hdTipos = $request->hdTipos;
        $hdAreas = $request->hdAreas;
        $cmbTRadicado = $request->cmbTRadicado;

        $estados = [];
        $tipos = [];
        $areas = [];

        if ($hdEstados != '') {
            $estados = explode(',', $hdEstados);
        } else {
            $estados = Estado_Radicado::where('estado', 1)
                ->pluck('id')
                ->toArray();
        }

        if ($hdTipos != '') {
            $tipos = explode(',', $hdTipos);
        } else {
            $tipos = Tipo_Radicado::where('estado', 1)
                ->pluck('id')
                ->toArray();
        }

        if ($hdAreas != '') {
            $areas = explode(',', $hdAreas);
        } else {
            $areas = Area::where('estado', 1)
                ->pluck('id')
                ->toArray();
        }

        $partes = explode('/', $fInicial);

        $fInicialInv = $partes[2] . $partes[1] . $partes[0];

        $partes = explode('/', $fFinal);

        $fFinalInv = $partes[2] . $partes[1] . $partes[0];

        $ancho = "30cm";
        $pdfname = '/reportes/'.'Reporte'.date('m-d-Y-His').'.pdf';
        if ($cmbTRadicado == 'Detalladado') {

            $rads = Radicado::where('created_at', '>=', $fInicialInv . '000000')
                ->where('created_at', '<=', $fFinalInv . '235959')
                ->whereIn('id_estado', $estados)
                ->whereIn('id_tipo_radicado', $tipos)
                ->whereIn('id_area', $areas)
                ->orderBy('created_at', 'DESC')
                ->get();

              
            try {
             
              $view =View::make('pdf.pdfreporte', ['rads' => $rads, 'ancho' => $ancho]);
              $html_content = $view->render();
              
            } catch (\Exception $e) {
                die( $e->getMessage());
            }
           

            PDF::SetTitle("Reporte");
            PDF::AddPage('L', 'A4');
            
            PDF::writeHTML($html_content, true, false, true, false, '');
            //die(print_r($html_content)) ;
            ob_end_clean();
           
            // userlist is the name of the PDF downloading
            PDF::Output(public_path() . $pdfname, 'F');



        } /* else {
        $deps = ReporteConsolidado::select('nombrearea', 'mes', 'year', \DB::raw('sum(cantidad) as cantidad'))
        ->groupBy('nombrearea', 'mes', 'year')
        ->where('created_at', '<=', $fFinalInv . '235959')
        ->whereIn('id_estado', $estados)
        ->whereIn('id_tipo_radicado', $tipos)
        ->whereIn('id_area', $areas)
        ->orderBy('nombrearea', 'ASC')
        ->orderBy('year', 'ASC')
        ->orderBy('mes', 'ASC')
        ->get();

        $estado = ReporteConsolidado::select('nombreestado', 'mes', 'year', \DB::raw('sum(cantidad) as cantidad'))
        ->groupBy('nombreestado', 'mes', 'year')
        ->where('created_at', '<=', $fFinalInv . '235959')
        ->whereIn('id_estado', $estados)
        ->whereIn('id_tipo_radicado', $tipos)
        ->whereIn('id_area', $areas)
        ->orderBy('nombreestado', 'ASC')
        ->orderBy('year', 'ASC')
        ->orderBy('mes', 'ASC')
        ->get();

        $tipo = ReporteConsolidado::select('nombretipo', 'mes', 'year', \DB::raw('sum(cantidad) as cantidad'))
        ->groupBy('nombretipo', 'mes', 'year')
        ->where('created_at', '<=', $fFinalInv . '235959')
        ->whereIn('id_estado', $estados)
        ->whereIn('id_tipo_radicado', $tipos)
        ->whereIn('id_area', $areas)
        ->orderBy('nombretipo', 'ASC')
        ->orderBy('year', 'ASC')
        ->orderBy('mes', 'ASC')
        ->get();

        $pdf = PDF::loadView('pdf.pdfconsolidado', compact('deps', 'estado', 'tipo', 'ancho'))
        ->setPaper('legal', 'landscape');

        }*/

        return $pdfname;

    }
}
