Mejorada lógica de sync pedido de faltantes y sobrantes con validación de cantidad para el caso faltantes
This commit is contained in:
parent
f008b9e263
commit
e69c379304
1 changed files with 19 additions and 12 deletions
|
@ -127,21 +127,28 @@ class SubpedidoController extends Controller
|
||||||
*/
|
*/
|
||||||
public function syncFaltantesYSobrantes(Subpedido $subpedido): SubpedidoResource
|
public function syncFaltantesYSobrantes(Subpedido $subpedido): SubpedidoResource
|
||||||
{
|
{
|
||||||
$producto_id = request()->producto_id;
|
|
||||||
$producto = Producto::find($producto_id);
|
|
||||||
if (!$producto) {
|
|
||||||
throw new HttpException(400, "No se encontro el producto.");
|
|
||||||
}
|
|
||||||
|
|
||||||
$cantidad = -1*($subpedido->productos()->find($producto_id)?->cantidad ?? 0);
|
|
||||||
|
|
||||||
$valid = request()->validate([
|
$valid = request()->validate([
|
||||||
'cantidad' => ['integer', 'required', 'min:' . $cantidad],
|
'cantidad' => ['integer', 'required'],
|
||||||
'producto_id' => ['required']
|
'producto_id' => [
|
||||||
|
'required',
|
||||||
|
Rule::in(Producto::all()->pluck('id')),
|
||||||
|
]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$producto = Producto::find($valid['producto_id']);
|
||||||
|
if ($producto->bono)
|
||||||
|
abort(400, "No te puede haber faltado un bono");
|
||||||
|
|
||||||
$cantidad = $valid['cantidad'];
|
$cantidad = $valid['cantidad'];
|
||||||
$subpedido->syncProducto($producto, $cantidad, null);
|
if ($cantidad < 0) { // caso faltantes
|
||||||
return new SubpedidoResource($subpedido);
|
$barrio = GrupoDeCompra::find($subpedido->grupo_de_compra_id);
|
||||||
|
$productosPedidos = $barrio->productosPedidos(true);
|
||||||
|
$cantidadPedida = intval($productosPedidos->where('producto_id', $producto->id)->first()->cantidad_pedida);
|
||||||
|
|
||||||
|
if ($cantidadPedida + $cantidad < 0)
|
||||||
|
abort(400, 'No te puede faltar más de lo que pediste');
|
||||||
|
}
|
||||||
|
|
||||||
|
$subpedido->syncProducto($producto, $cantidad);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue