<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use Illuminate\Support\Facades\Redirect;
//Acceda al enlace: yourproject \ vendor \ laravel \ framework \ src \ Illuminate \ Support \ Facades
//Paso 2 : Cree un archivo con el nombre de archivo: Input.php
use Illuminate\Support\Facades\Input;
use App\Http\Requests\ArticuloFormRequest;
use App\Models\Producto;
use DB;
use Illuminate\Support\Facades\Session;
use Codedge\Fpdf\Fpdf\Fpdf;

class ProductoController extends Controller
{
    private $fpdf;
   
    public function index(Request $request)
    {
        if ($request)
        {
            $query=trim($request->get('searchText'));
            $productos=DB::table('productos')
            ->select('id_producto', 'codigo', 'foto', 'fecha_compra', 'suplidor', 'nombre', 'descripcion', 'tipo', 'presentacion', 'precio_total', 'costo_unitario', 'precio_venta', 'unidad_medida', 'fecha_fabricacion', 'fecha_vencimiento', 'cantidad_compradas', 'estado')
            ->where('nombre','LIKE','%'.$query.'%')
            ->orwhere('codigo','LIKE','%'.$query.'%')
            ->orwhere('descripcion','LIKE','%'.$query.'%')
            ->orwhere('tipo','LIKE','%'.$query.'%')
            ->orderBy('id_producto','desc')
            ->paginate(10);
            return view('almacen.articulo.index',["productos"=>$productos,"searchText"=>$query]);
        }
    }
    public function create()
    {
        return view("almacen.articulo.create");
    }
    public function store (ArticuloFormRequest $request)
    {
        $articulo=new Producto;
        $articulo->codigo=$request->get('codigo');

        $articulo->nombre=$request->get('nombre');
        $articulo->descripcion=$request->get('descripcion');
        $articulo->tipo=$request->get('tipo');
        $articulo->presentacion=$request->get('presentacion');

        $articulo->costo_unitario=$request->get('costo_unitario');
    
        $articulo->unidad_medida=$request->get('unidad_medida');
        $articulo->fecha_fabricacion=$request->get('fecha_fabricacion');
        $articulo->fecha_vencimiento=$request->get('fecha_vencimiento');

        
        $articulo->estado='1';

        if ($request->hasFile('foto')){

            $file = $request->file('foto');
    
            $file->move(public_path().'/imagenes/articulos/', $file->getClientOriginalName());
    
            $articulo->foto = $file->getClientOriginalName();
    
        }
        
        $articulo->save();

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

    }
    public function show($id)
    {
        return view("almacen.articulo.show",["articulo"=>Producto::findOrFail($id)]);
    }


    public function edit($id)
    {
        return view("almacen.articulo.edit",["articulo"=> Producto::findOrfail($id)]);
    }
    
    
    
    public function update(ArticuloFormRequest $request,$id)
    {
        $articulo=Producto::findOrFail($id);

        $articulo->codigo=$request->get('codigo');

        $articulo->nombre=$request->get('nombre');
        $articulo->descripcion=$request->get('descripcion');
        $articulo->tipo=$request->get('tipo');
        $articulo->presentacion=$request->get('presentacion');
    
        $articulo->costo_unitario=$request->get('costo_unitario');
        
        $articulo->unidad_medida=$request->get('unidad_medida');
        $articulo->fecha_fabricacion=$request->get('fecha_fabricacion');
        $articulo->fecha_vencimiento=$request->get('fecha_vencimiento');
       
        
        $articulo->estado='1';

        if ($request->hasFile('foto')){

            $file = $request->file('foto');
    
            $file->move(public_path().'/imagenes/articulos/', $file->getClientOriginalName());
    
            $articulo->foto = $file->getClientOriginalName();
    
        }
        
        $articulo->update();

        session::flash('statuscode','success');
        return Redirect::to('almacen/articulo')->with('status','Producto actualizado con éxito.');
    }
    public function destroy($id)
    {
        $articulo=Producto::find($id);
        $articulo->delete();

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

    }

    
 
}