forked from nathalie/pedi2
WIP
This commit is contained in:
parent
6b9aa7a995
commit
95ba0733ab
|
@ -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…
Reference in New Issue