Agregar notas a la base de datos

This commit is contained in:
Rodrigo 2024-09-17 21:27:58 -03:00
parent b4ca119f9a
commit 7eeeae6a1e
4 changed files with 41 additions and 5 deletions

View File

@ -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);
}

View File

@ -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()

View File

@ -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 {

View File

@ -0,0 +1,34 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class NotasProducto extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('producto_subpedido', function (Blueprint $table) {
$table->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');
});
}
}