From 7eeeae6a1e52ea5b9e7743bd16a510131af18c9b Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Tue, 17 Sep 2024 21:27:58 -0300 Subject: [PATCH] Agregar notas a la base de datos --- .../Controllers/Api/SubpedidoController.php | 3 +- app/Producto.php | 2 +- app/Subpedido.php | 7 ++-- .../2024_09_17_234635_notas_producto.php | 34 +++++++++++++++++++ 4 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 database/migrations/2024_09_17_234635_notas_producto.php diff --git a/app/Http/Controllers/Api/SubpedidoController.php b/app/Http/Controllers/Api/SubpedidoController.php index 00c9302..1d375cf 100644 --- a/app/Http/Controllers/Api/SubpedidoController.php +++ b/app/Http/Controllers/Api/SubpedidoController.php @@ -79,6 +79,7 @@ class SubpedidoController extends Controller $valid = request()->validate([ 'cantidad' => 'required|min:0', + 'notas' => 'required', 'producto_id' => [ 'required', Rule::in(Producto::all()->pluck('id')), @@ -86,7 +87,7 @@ class SubpedidoController extends Controller ]); $producto = Producto::find($valid['producto_id']); - $subpedido->syncProducto($producto, $valid['cantidad']); + $subpedido->syncProducto($producto, $valid['cantidad'], $valid['notas']); return new SubpedidoResource($subpedido); } diff --git a/app/Producto.php b/app/Producto.php index d075724..624230e 100644 --- a/app/Producto.php +++ b/app/Producto.php @@ -15,7 +15,7 @@ class Producto extends Model public function subpedidos() { - return $this->belongsToMany('App\Subpedido','productos_subpedidos')->withPivot(["cantidad"]); + return $this->belongsToMany('App\Subpedido','productos_subpedidos')->withPivot(["cantidad", "notas"]); } public function proveedor() diff --git a/app/Subpedido.php b/app/Subpedido.php index 136716f..62eccb1 100644 --- a/app/Subpedido.php +++ b/app/Subpedido.php @@ -15,7 +15,7 @@ class Subpedido extends Model public function productos() { - return $this->belongsToMany('App\Producto')->withPivot(["cantidad","total"]); + return $this->belongsToMany('App\Producto')->withPivot(["cantidad","total", "notas"]); } //Bonos del MPS, Sororo, etc. NO devuelve bonos de transporte @@ -84,13 +84,14 @@ class Subpedido extends Model } //Actualiza el pedido, agregando o quitando del subpedido según sea necesario. Debe ser llamado desde el controlador de subpedidos, luego de validar que los parámetros $producto y $cantidad son correctos. También calcula el subtotal por producto. - public function syncProducto(Producto $producto, Int $cantidad) { + public function syncProducto(Producto $producto, Int $cantidad, string $notas) { if ($cantidad){ //si la cantidad es 1 o más se agrega el producto o actualiza la cantidad $this->productos()->syncWithoutDetaching([ $producto->id => [ 'cantidad' => $cantidad, - 'total' => $cantidad * $producto->precio + 'total' => $cantidad * $producto->precio, + 'notas' => $notas, ] ]); } else { diff --git a/database/migrations/2024_09_17_234635_notas_producto.php b/database/migrations/2024_09_17_234635_notas_producto.php new file mode 100644 index 0000000..8b42c65 --- /dev/null +++ b/database/migrations/2024_09_17_234635_notas_producto.php @@ -0,0 +1,34 @@ +string('notas'); + $table->boolean('requiere-notas'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('producto_subpedido', function (Blueprint $table) { + $table->dropColumn('notas'); + $table->dropColumn('requiere-notas'); + }); + } +}