WIP
This commit is contained in:
		
							parent
							
								
									6b9aa7a995
								
							
						
					
					
						commit
						95ba0733ab
					
				
					 3 changed files with 38 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -7,6 +7,7 @@ use Illuminate\Http\Request;
 | 
			
		|||
use App\Filtros\FiltroDeSubpedido;
 | 
			
		||||
use App\Subpedido;
 | 
			
		||||
use App\GrupoDeCompra;
 | 
			
		||||
use App\Producto;
 | 
			
		||||
use Illuminate\Validation\Rule;
 | 
			
		||||
use Symfony\Component\HttpKernel\Exception\HttpException;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +27,7 @@ class SubpedidoController extends Controller
 | 
			
		|||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Store a newly created resource in storage.
 | 
			
		||||
     * Guardar un nuevo registro en el almacenamiento.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  \Illuminate\Http\Request  $request
 | 
			
		||||
     * @return \Illuminate\Http\Response
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +45,28 @@ class SubpedidoController extends Controller
 | 
			
		|||
        return $s;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Agregar un producto a un subpedido.
 | 
			
		||||
     *
 | 
			
		||||
     * @param  \Illuminate\Http\Request  $request
 | 
			
		||||
     * @return \Illuminate\Http\Response
 | 
			
		||||
     */
 | 
			
		||||
    public function updateProducto(Subpedido $subpedido, Producto $producto, Request  $request)
 | 
			
		||||
    {
 | 
			
		||||
        $validado = $this->validateActualizacionDeProducto();
 | 
			
		||||
        $cantidad = $validado['cantidad'];
 | 
			
		||||
 | 
			
		||||
        if ($cantidad){
 | 
			
		||||
            //si la cantidad es 1 o más se agrega el producto o actualiza la cantidad
 | 
			
		||||
            $subpedido->productos()->syncWithoutDetaching([$producto->id => ['cantidad' => $cantidad]]);
 | 
			
		||||
 | 
			
		||||
        } else {
 | 
			
		||||
            //si la cantidad es 0, se elimina el producto del subpedido
 | 
			
		||||
            $subpedido->productos()->detach($producto->id);
 | 
			
		||||
        }
 | 
			
		||||
        return response('Producto ' . $producto->nombre . ' actualizado en subpedido de ' . $subpedido->nombre . ' (cantidad ' . $cantidad . ')', 200);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function validateSubpedido(){
 | 
			
		||||
        return request()->validate([
 | 
			
		||||
            'nombre'                => 'required|max:255',
 | 
			
		||||
| 
						 | 
				
			
			@ -53,4 +76,10 @@ class SubpedidoController extends Controller
 | 
			
		|||
            ]
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function validateActualizacionDeProducto(){
 | 
			
		||||
        return request()->validate([
 | 
			
		||||
            'cantidad'  => 'required|min:0'
 | 
			
		||||
        ]);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,7 @@ class Subpedido extends Model
 | 
			
		|||
 | 
			
		||||
  public function productos()
 | 
			
		||||
  {
 | 
			
		||||
    return $this->belongsToMany('App\Producto','pedidos_productos')->withPivot(["cantidad"]);
 | 
			
		||||
    return $this->belongsToMany('App\Producto')->withPivot(["cantidad"]);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public function grupoDeCompra()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,6 +31,10 @@ Route::middleware('api')->group(function () {
 | 
			
		|||
    Route::prefix('subpedidos')->group(function () {
 | 
			
		||||
        Route::get('/','Api\SubpedidoController@index');
 | 
			
		||||
        Route::post('/','Api\SubpedidoController@store');
 | 
			
		||||
        
 | 
			
		||||
        //@TO DO -> esta ruta debe estar en middleware de auth y/o subpedido
 | 
			
		||||
        Route::put('/{subpedido}/producto/{producto}','Api\SubpedidoController@updateProducto');
 | 
			
		||||
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //@TO DO -> esta ruta debe estar en middleware de auth y/o subpedido
 | 
			
		||||
| 
						 | 
				
			
			@ -41,6 +45,8 @@ Route::middleware('api')->group(function () {
 | 
			
		|||
    //@TO DO -> esta ruta debe estar en middleware de auth y/o subpedido
 | 
			
		||||
	Route::prefix('productos')->group(function () {
 | 
			
		||||
        Route::get('/','Api\ProductoController@index');
 | 
			
		||||
		Route::get('{producto}','Api\ProductoController@show');
 | 
			
		||||
	    Route::get('{producto}','Api\ProductoController@show');
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
    //@TO DO -> esta ruta debe estar en middleware de auth y/o subpedido
 | 
			
		||||
});
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue