/home/dvjjulio/test.istyle.mx/app/Http/Controllers/ProductoController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Producto;
use Uuid;
use Auth;
use Validator;

class ProductoController extends Controller
{
    //
    public function index(){
    	$productos = Producto::where('status_id',1)->get();
    	return view('Catalogos.Producto')->with(compact('productos'));
    }

   public function guardar(Request $request){
      $data = $request->all();

      // Busca si existe la categoría previamente en la BD
      $product = Producto::where('descripcion','=',$data['descripcion'])->where('status_id',0)->first();
      if(isset($product)){
      	$data['id'] = $product->id;
      }

    	if($data['id']=="0"){

    	$validacion = Validator::make($data,
    	 array(
    	 	'descripcion' => 'required|unique:producto',
    	 	),
    	 array(
    	 	'descripcion.required' => 'La descripcion es obligatorio',
    	 	'descripcion.unique' => 'El producto ya existe',
        )
    	);

    	}else{

  	$validacion = Validator::make($data,
  	 array(
  	 	'descripcion' => 'required',
  	 	),
  	 array(
  		'descripcion.required' => 'La descripcion es obligatorio',
       	 )

  	);
  }


  if($validacion->fails()){
  	return response()->json(['status'=>false,'message'=>$validacion->messages()]);
  }

  	if($data['id']=="0"){
  		$producto = new Producto();
  		$producto->id = Uuid::generate();
  		$mesage = "El producto ha sido creado exitosamente";
  	}else{
  		$producto = Producto::find($data['id']);
  		$producto->status_id = 1;
  		$mesage = "El producto ha sido actualizada correctamente";
  	}


  	$producto->descripcion =$data['descripcion'];
	$producto->costo_mx =$data['costo_mx'];
	$producto->costo_eu =$data['costo_eu'];
	$producto->costo_gua =$data['costo_gua'];
	$producto->comisiona =$data['comisiona'];
    $producto->cliente_id = Auth::user()->id;

	  if($producto->save()){ // Guardar en base de datos
  		return response()->json(['status'=>true,'message'=>$mesage,'data'=>$data]);
  	}else{
  		return response()->json(['status'=>false,'message'=>'Error al insertar los datos']);
  	}
      }



  public function update(Request $request){
  	$id = $request->input('id');
  	return Producto::find($id);
  }

  public function delete(Request $request){
  	$producto = Producto::Find($request->input('id'));
  	$producto->status_id=0;
  	if ($producto->save()){
  		return response()->json(['status'=>true,'message'=>'Registro eliminado correctamente']);
  	}else{
  		return response()->json(['status'=>false,'message'=>'Error al eliminar registro']);
  	}
  }
}