diff --git a/app/Http/Controllers/Api/SubpedidoController.php b/app/Http/Controllers/Api/SubpedidoController.php
index 1d375cf..7f57cab 100644
--- a/app/Http/Controllers/Api/SubpedidoController.php
+++ b/app/Http/Controllers/Api/SubpedidoController.php
@@ -79,7 +79,7 @@ class SubpedidoController extends Controller
$valid = request()->validate([
'cantidad' => 'required|min:0',
- 'notas' => 'required',
+ 'notas' => 'nullable',
'producto_id' => [
'required',
Rule::in(Producto::all()->pluck('id')),
@@ -87,7 +87,11 @@ class SubpedidoController extends Controller
]);
$producto = Producto::find($valid['producto_id']);
- $subpedido->syncProducto($producto, $valid['cantidad'], $valid['notas']);
+ $notas = $valid['notas'];
+ if ($notas == null) {
+ $notas = "";
+ }
+ $subpedido->syncProducto($producto, $valid['cantidad'], $notas);
return new SubpedidoResource($subpedido);
}
diff --git a/database/migrations/2024_09_17_234635_notas_producto.php b/database/migrations/2024_09_17_234635_notas_producto.php
index 56b6ff4..898db8d 100644
--- a/database/migrations/2024_09_17_234635_notas_producto.php
+++ b/database/migrations/2024_09_17_234635_notas_producto.php
@@ -14,7 +14,7 @@ class NotasProducto extends Migration
public function up()
{
Schema::table('producto_subpedido', function (Blueprint $table) {
- $table->string('notas');
+ $table->string('notas')->nullable();
});
}
diff --git a/resources/js/components/Producto/ProductoCantidad.vue b/resources/js/components/Producto/ProductoCantidad.vue
index 93ec5cd..e141e12 100644
--- a/resources/js/components/Producto/ProductoCantidad.vue
+++ b/resources/js/components/Producto/ProductoCantidad.vue
@@ -23,6 +23,11 @@
+
+
+
+
+
@@ -33,21 +38,23 @@
},
data() {
return {
- cantidad: this.producto.cantidad,
- enChismosa: this.producto.cantidad,
+ cantidad: this.cantidadEnChismosa(),
+ notas: this.notasEnChismosa(),
}
},
mounted() {
- if (this.producto.pivot !== undefined) {
- this.cantidad = this.producto.pivot.cantidad;
- this.enChismosa = this.cantidad;
- }
- Event.$on('sync-subpedido', (cantidad,productoId) => {
- if (this.producto.id === productoId)
- this.sincronizar(cantidad);
+ Event.$on('sync-subpedido', (cantidad, productoId, notas) => {
+ if (this.producto.id === productoId)
+ this.sincronizar(cantidad, notas);
});
},
methods: {
+ notasEnChismosa() {
+ return this.producto.pivot !== undefined ? this.producto.pivot.notas : "";
+ },
+ cantidadEnChismosa() {
+ return this.producto.pivot !== undefined ? this.producto.pivot.cantidad : 0;
+ },
decrementar() {
this.cantidad -= 1;
},
@@ -55,26 +62,26 @@
this.cantidad += 1;
},
confirmar() {
- Event.$emit('sync-subpedido', this.cantidad, this.producto.id);
+ console.log("Emit sync " + this.cantidad + " " + this.notas);
+ Event.$emit('sync-subpedido', this.cantidad, this.producto.id, this.notas);
},
borrar() {
this.cantidad = 0;
this.confirmar();
},
- sincronizar(cantidad) {
+ sincronizar(cantidad, notas) {
+ this.notas = notas;
this.cantidad = cantidad;
- if (this.producto.pivot != null) {
+ if (this.producto.pivot !== undefined) {
this.producto.pivot.cantidad = cantidad;
- } else {
- this.producto.cantidad = cantidad;
+ this.producto.pivot.notas = notas;
}
- this.enChismosa = cantidad;
},
hayCambios() {
- return this.cantidad != this.enChismosa;
+ return this.cantidad != this.cantidadEnChismosa() || this.notas != this.notasEnChismosa();
},
puedeBorrar() {
- return this.enChismosa > 0;
+ return this.cantidadEnChismosa() > 0;
},
}
}
diff --git a/resources/js/components/ProductosContainer.vue b/resources/js/components/ProductosContainer.vue
index 3f34f15..5c32f51 100644
--- a/resources/js/components/ProductosContainer.vue
+++ b/resources/js/components/ProductosContainer.vue
@@ -38,8 +38,9 @@ export default {
}).then(response => {
this.productos = response.data.data;
this.productos.forEach(p => {
- p.cantidad = this.$root.cantidad(p);
- p.notas = this.$root.notas(p);
+ p.pivot = {};
+ p.pivot.cantidad = this.$root.cantidad(p);
+ p.pivot.notas = this.$root.notas(p);
});
});
this.visible = true;