<?php

namespace App\Http\Controllers; // <--- 1. Namespace correcto

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\DB;

// 2. Importaciones de Modelos y Requests (Rutas modernas)
use App\Models\cLicenciaFE;
use App\Http\Requests\CpelicenciaFormRequest;

// 3. Importación de FPDF (Requiere paquete codedge/laravel-fpdf)
use Codedge\Fpdf\Fpdf\Fpdf;

class CpelicenciaController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function index(Request $request)
    {
        if ($request)
        {
            // OJO: Asegúrate de tener configurada la conexión 'mysql2' en config/database.php
            DB::setDefaultConnection("mysql2");
            
            $query = trim($request->get('searchText'));
            
            $cLicencias = DB::table('cLicenciaFE')
                ->where('RAZON','LIKE','%'.$query.'%')
                ->orWhere ('RUC','LIKE','%'.$query.'%')
                ->orderBy('id','asc')
                ->paginate(20);
                
            return view('licencias.cpelicencia.index', ["cLicenciaFE" => $cLicencias, "searchText" => $query]);
        }
    }

    public function create()
    {
        return view("licencias.cpelicencia.create");
    }

    public function store(CpelicenciaFormRequest $request)
    {
        $cLicenciaFE = new cLicenciaFE;
        // Asignamos la conexión mysql2 explícitamente si el modelo no la tiene definida
        $cLicenciaFE->setConnection('mysql2'); 
        
        $cLicenciaFE->RUC = $request->get('RUC');
        $cLicenciaFE->RAZON = $request->get('RAZON');
        $cLicenciaFE->ESTADO = $request->get('ESTADO');
        $cLicenciaFE->ACCESOSIST = $request->get('ACCESOSIST');
        //$cLicenciaFE->dFechaFinLic = $request->get('dFechaFinLic');

        // LÓGICA PARA FECHA 0000-00-00
        // Si viene vacío (null o ""), le pone ceros. Si trae fecha, la respeta.
        $cLicenciaFE->dFechaFinLic = $request->get('dFechaFinLic') ?: '0000-00-00';

        $cLicenciaFE->save();
        
        return Redirect::to('licencias/cpelicencia');
    }

    public function show($id)
    {
        // Buscamos en la conexión correcta
        $licencia = cLicenciaFE::on('mysql2')->findOrFail($id);
        return view("licencias.cpelicencia.show", ["cLicenciaFE" => $licencia]);
    }

    public function edit($id)
    {
        $licencia = cLicenciaFE::on('mysql2')->findOrFail($id);
        return view("licencias.cpelicencia.edit", ["cLicenciaFE" => $licencia]);
    }

    public function update(CpelicenciaFormRequest $request, $id)
    {
        $cLicenciaFE = cLicenciaFE::on('mysql2')->findOrFail($id);
        
        $cLicenciaFE->RUC = $request->get('RUC');
        $cLicenciaFE->RAZON = $request->get('RAZON');
        $cLicenciaFE->ESTADO = $request->get('ESTADO');
        $cLicenciaFE->ACCESOSIST = $request->get('ACCESOSIST');
        //$cLicenciaFE->dFechaFinLic = $request->get('dFechaFinLic');
        // MISMA LÓGICA AQUÍ
        $cLicenciaFE->dFechaFinLic = $request->get('dFechaFinLic') ?: '0000-00-00';

        $cLicenciaFE->update();
        
        return Redirect::to('licencias/cpelicencia');
    }

    public function destroy($id)
    {
        $cLicenciaFE = cLicenciaFE::on('mysql2')->findOrFail($id);
        $cLicenciaFE->delete();
        
        return Redirect::to('licencias/cpelicencia');
    }

    public function reporte()
    {
         // Configurar conexión secundaria
         DB::setDefaultConnection("mysql2");
         
         $registros = DB::table('cLicenciaFE')
            ->where('ruc','!=','')
            ->orderBy('RUC','asc')
            ->get();

         $pdf = new Fpdf();
         
         // 4. CORRECCIÓN FPDF: Usar flechas (->) y ajustar parámetros Cell
         $pdf->AddPage();
         $pdf->SetTextColor(35,56,113);
         $pdf->SetFont('Arial','B',11);
         $pdf->Cell(0,10,utf8_decode("Listado Licencias Comercosys"),0,1,"C");
         $pdf->Ln();
         
         $pdf->SetTextColor(0,0,0);
         $pdf->SetFillColor(206, 246, 245);
         $pdf->SetFont('Arial','B',10);
         
         // Encabezados
         $pdf->Cell(25,8,utf8_decode("RUC"),1,0,"L",true);
         $pdf->Cell(140,8,utf8_decode("RAZON"),1,0,"L",true);
         $pdf->Cell(20,8,utf8_decode("ESTADO"),1,1,"L",true); // Salto de línea al final (1)
         
         $pdf->SetTextColor(0,0,0); 
         $pdf->SetFillColor(255, 255, 255);
         $pdf->SetFont("Arial","",9);
         
         foreach ($registros as $reg)
         {
            $pdf->Cell(25,6,utf8_decode($reg->RUC),1,0,"L",true);
            $pdf->Cell(140,6,utf8_decode($reg->RAZON),1,0,"L",true);
            $pdf->Cell(20,6,utf8_decode($reg->ESTADO),1,1,"L",true); // Salto de línea
         }

         $pdf->Output();
         exit;
    }
}