agregado de modificaciones en abm productos

This commit is contained in:
cmoreno 2026-10-12 10:28:28 -03:00
parent 4ed4a05488
commit e1f55e0ede
4 changed files with 45 additions and 6 deletions

View File

@ -10,13 +10,13 @@ use App\Models\Etiquetas;
class ProductoController extends Controller class ProductoController extends Controller
{ {
public function index(Request $request){ public function index(Request $request){
$productos = Producto::with('categorias','codigo_barras')->get(); $productos = Producto::with('categorias','codigo_barras','etiquetas')->get();
return view('productos.index', ["productos"=>$productos]); return view('productos.index', ["productos"=>$productos]);
} }
public function show($id){ public function show($id){
$etiquetas= Etiquetas::get();
$producto = Producto::with('categorias','codigo_barras')->findOrfail($id); $producto = Producto::with('categorias','codigo_barras','etiquetas')->findOrfail($id);
return view('productos.show', ["prod"=>$producto]); return view('productos.show', ["prod"=>$producto, "etiquetas" => $etiquetas]);
} }
public function destroy(Request $request, $id){ public function destroy(Request $request, $id){
@ -57,20 +57,29 @@ class ProductoController extends Controller
} }
public function edit($id){ public function edit($id){
$producto = Producto::with('categorias','codigo_barras')->findOrfail($id); $producto = Producto::with('categorias','codigo_barras','etiquetas')->findOrfail($id);
$categorias= Categorias::get(); $categorias= Categorias::get();
$etiquetas= Etiquetas::get(); $etiquetas= Etiquetas::get();
return view('productos.edit', ["prod"=>$producto, "etiquetas"=>$etiquetas, "categorias"=>$categorias]); return view('productos.edit', ["prod"=>$producto, "etiquetas"=>$etiquetas, "categorias"=>$categorias]);
} }
public function update(Request $request, $id){ public function update(Request $request, $id){
$producto = Producto::findOrfail($id); $producto = Producto::with('codigo_barras')->findOrfail($id);
$codigo_barras=$producto->codigo_barras;
$codigo_barras->fill([
'codigo' => $request->input('codigo_barras'),
]);
$codigo_barras->update();
$producto->fill([ $producto->fill([
'nombre' => $request->input('nombre'), 'nombre' => $request->input('nombre'),
'descripcion' => $request->input('descripcion'), 'descripcion' => $request->input('descripcion'),
'precio' => $request->input('precio'), 'precio' => $request->input('precio'),
'categoria_id' => $request->input('categoria'),
]); ]);
$producto->update(); $producto->update();
$producto->etiquetas()->sync($request->input('etiquetas'));
$request->session()->flash('mensaje-success', 'El producto fue modificado.'); $request->session()->flash('mensaje-success', 'El producto fue modificado.');
return redirect('/productos'); return redirect('/productos');
} }

View File

@ -64,6 +64,22 @@
<label for="nombre" class="form-check-label">Codigo Barras (*)</label> <label for="nombre" class="form-check-label">Codigo Barras (*)</label>
<input type="text" name="codigo_barras" id="codigo_barras" value="{{ old('codigo_barras',$prod->codigo_barras->id_codigo_barras) }}" class="form-control"> <input type="text" name="codigo_barras" id="codigo_barras" value="{{ old('codigo_barras',$prod->codigo_barras->id_codigo_barras) }}" class="form-control">
</div> </div>
</div>
<div class="row">
<div class="col-md-5">
<label for="etiquetas"> Etiquetas</label>
<select name="etiquetas[]" id="etiquetas" style="width: 100%" multiple >
<option></option>
@foreach($etiquetas as $etiqueta)
<option value="{{$etiqueta->id_etiqueta}}"
{{in_array($etiqueta->id_etiqueta, old('etiquetas',$prod->etiquetas->pluck('id_etiqueta')->toArray())) ? 'selected' : ''}}>
{{$etiqueta->nombre}}</option>
@endforeach
</select>
</div>
</div> </div>

View File

@ -42,6 +42,7 @@
<th>Precio</th> <th>Precio</th>
<th>Codigo_barra</th> <th>Codigo_barra</th>
<th>Categoria</th> <th>Categoria</th>
<th>Etiquetas</th>
<th>Acciones</th> <th>Acciones</th>
</tr> </tr>
</thead> </thead>
@ -54,6 +55,11 @@
<td>{{ $prod->precio }}</td> <td>{{ $prod->precio }}</td>
<td>{{ $prod->codigo_barras->codigo }}</td> <td>{{ $prod->codigo_barras->codigo }}</td>
<td>{{ $prod->categorias->nombre}}</td> <td>{{ $prod->categorias->nombre}}</td>
<td>
@foreach ($prod->etiquetas as $etiqueta )
{{ $etiqueta->nombre}}
@endforeach
</td>
<td align="center"> <td align="center">
<form method="POST" action="{{ route('productos.destroy', $prod->id_producto) }}" style="display:inline;"> <form method="POST" action="{{ route('productos.destroy', $prod->id_producto) }}" style="display:inline;">

View File

@ -38,6 +38,14 @@
<div class="row"> <div class="row">
<div class="col-md-5"> <div class="col-md-5">
<label for="etiquetas"> Etiquetas</label> <label for="etiquetas"> Etiquetas</label>
<select name="etiquetas[]" id="etiquetas" style="width: 100%" multiple disabled >
<option></option>
@foreach($etiquetas as $etiqueta)
<option value="{{$etiqueta->id_etiqueta}}"
{{in_array($etiqueta->id_etiqueta, old('etiquetas',$prod->etiquetas->pluck('id_etiqueta')->toArray())) ? 'selected' : ''}}>
{{$etiqueta->nombre}}</option>
@endforeach
</select>
</div> </div>