forked from nathalie/pedi2
Compare commits
1 Commits
master
...
agregar-pr
Author | SHA1 | Date |
---|---|---|
nat | 95ba0733ab |
|
@ -7,6 +7,7 @@ use Illuminate\Http\Request;
|
||||||
use App\Filtros\FiltroDeSubpedido;
|
use App\Filtros\FiltroDeSubpedido;
|
||||||
use App\Subpedido;
|
use App\Subpedido;
|
||||||
use App\GrupoDeCompra;
|
use App\GrupoDeCompra;
|
||||||
|
use App\Producto;
|
||||||
use Illuminate\Validation\Rule;
|
use Illuminate\Validation\Rule;
|
||||||
use Symfony\Component\HttpKernel\Exception\HttpException;
|
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
|
* @param \Illuminate\Http\Request $request
|
||||||
* @return \Illuminate\Http\Response
|
* @return \Illuminate\Http\Response
|
||||||
|
@ -44,6 +45,28 @@ class SubpedidoController extends Controller
|
||||||
return $s;
|
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(){
|
protected function validateSubpedido(){
|
||||||
return request()->validate([
|
return request()->validate([
|
||||||
'nombre' => 'required|max:255',
|
'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()
|
public function productos()
|
||||||
{
|
{
|
||||||
return $this->belongsToMany('App\Producto','pedidos_productos')->withPivot(["cantidad"]);
|
return $this->belongsToMany('App\Producto')->withPivot(["cantidad"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function grupoDeCompra()
|
public function grupoDeCompra()
|
||||||
|
|
|
@ -31,6 +31,10 @@ Route::middleware('api')->group(function () {
|
||||||
Route::prefix('subpedidos')->group(function () {
|
Route::prefix('subpedidos')->group(function () {
|
||||||
Route::get('/','Api\SubpedidoController@index');
|
Route::get('/','Api\SubpedidoController@index');
|
||||||
Route::post('/','Api\SubpedidoController@store');
|
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
|
//@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
|
//@TO DO -> esta ruta debe estar en middleware de auth y/o subpedido
|
||||||
Route::prefix('productos')->group(function () {
|
Route::prefix('productos')->group(function () {
|
||||||
Route::get('/','Api\ProductoController@index');
|
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