<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Models\Categoria;
use Illuminate\Support\Facades\Redirect;
use App\Http\Requests\CategoriaFormRequest;
use DB;

use Illuminate\Support\Facades\Session;
use Codedge\Fpdf\Fpdf\Fpdf;

class CategoriaController extends Controller
{
    private $fpdf;
    public function __construct()
    {
        $this->middleware('permission:categoria-list|categoria-create|categoria-edit|categoria-delete', ['only' => ['index','show']]);
        $this->middleware('permission:categoria-create', ['only' => ['create','store']]);
        $this->middleware('permission:categoria-edit', ['only' => ['edit','update']]);
        $this->middleware('permission:categoria-delete', ['only' => ['destroy']]);
    }
    public function index(Request $request)
    {
        if ($request) 
        {
            $query=trim($request->get('searchText'));
            $categorias=DB::table('categoria')->where('nombre','LIKE','%'.$query.'%')
            ->where('condicion','=','1')
            ->orderBy('idcategoria','desc')
            ->paginate(10);

            return view('almacen.categoria.index',["categorias"=>$categorias,"searchText"=>$query]);
        }

    }
    public function create()
    {
        return view("almacen.categoria.create");

    }
    public function store(CategoriaFormRequest $request)
    {
        $categoria=new Categoria;
        $categoria->nombre=$request->get('nombre');
        $categoria->descripcion=$request->get('descripcion');
        $categoria->condicion='1';
        $categoria->save();

        session::flash('statuscode','success');
        return Redirect::to('almacen/categoria')->with('status','Categoria creado con éxito.');

    }
    public function show($id)
    {
        return view("almacen.categoria.show",["categoria"=> Categoria::findOrfail($id)]);

    }
    public function edit($id)
    {
        return view("almacen.categoria.edit",["categoria"=> Categoria::findOrfail($id)]);

    }
    public function update(CategoriaFormRequest $request,$id)
    {
        $categoria=Categoria::findOrfail($id);
        $categoria->nombre=$request->get('nombre');
        $categoria->descripcion=$request->get('descripcion');
        $categoria->update(); 

        session::flash('statuscode','success');
        return Redirect::to('almacen/categoria')->with('status','Categoria actualizado con éxito.');

    }
    public function destroy($id)
    {
        $categoria=Categoria::findOrfail($id);
        $categoria->condicion='0';
        $categoria->update();

        session::flash('statuscode','success');
        return Redirect::to('almacen/categoria')->with('status','Categoria eliminado con éxito.');

    }
    public function reporte(){
        //Obtenemos los registros
        $registros=DB::table('categoria')
           ->orderBy('nombre','asc')
           ->get();
        $empresas=DB::table('empresa')
           ->select('ruc','razon_social','direccion','telefono','correo','pag_web','logo')
           ->first();

           $pdf = new FPDF('P', 'mm','A4');
           $pdf->AddPage();
           $pdf->Image('imagenes/empresa/'.$empresas->logo,10,10,60);

           $pdf->SetFont('Arial','B',10);
           $pdf->SetXY(100,15);
           $pdf->Cell(20  ,0,utf8_decode(strtoupper($empresas->razon_social)),0,0,'C');

           $pdf->SetFont('Arial','',9);
           $pdf->SetXY(100,20);
           $pdf->Cell(20  ,0,utf8_decode(strtoupper('RUC: '.$empresas->ruc)),0,0,'C');

           $pdf->SetFont('Arial','',8);
           $pdf->SetXY(100,24);
           $pdf->Cell(20  ,0,utf8_decode(strtoupper($empresas->direccion)),0,0,'C');

           $pdf->SetFont('Arial','',8);
           $pdf->SetXY(100,28);
           $pdf->Cell(20  ,0,utf8_decode($empresas->correo ." - ". $empresas->pag_web ." - ". $empresas->telefono),0,0,'C');

           $pdf->SetFont('Arial','B',9);
           $pdf->SetXY(155,20);
           $pdf->MultiCell(55,0,utf8_decode('Fecha Impresión'),0,'C');
           $pdf->SetFont('Arial','',9);
           $pdf->SetXY(155,25);
           $pdf->MultiCell(55,0,utf8_decode(date('m - d - Y')),0,'C');

           $pdf->SetFont('Arial','B',12);
           $pdf->SetXY(80,37);
           $pdf->Cell(50,0,utf8_decode('LISTADO DE CATEGORIAS'),0,0,'C');

           $pdf->Line(10,41,200,41);
           $pdf->Line(10,42,200,42);

           $pdf->Ln(8);
           $pdf->SetTextColor(0,0,0);  // Establece el color del texto
           $pdf->SetFillColor(232, 232, 232); // establece el color del fondo de la celda
           $pdf->SetFont('Arial','B',11);
           //El ancho de las columnas debe de sumar promedio 190
           $pdf->cell(20,8,utf8_decode("Id"),1,"","C",true);
           $pdf->cell(170,8,utf8_decode("Nombre Categoria"),1,"","C",true);

           $pdf->Ln();
           $pdf->SetTextColor(0,0,0);  // Establece el color del texto
           $pdf->SetFillColor(255, 255, 255); // establece el color del fondo de la celda
           $pdf->SetFont("Arial","",10);

           foreach ($registros as $key => $reg)
           {
              $pdf->cell(20,8,utf8_decode($key + 1),1,"","C",true);
              $pdf->cell(170,8,utf8_decode($reg->nombre),1,"","L",true);
              $pdf->Ln();
           }

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