From 5a87830b1acf65f9a5d835b06935a72d9a9acc34 Mon Sep 17 00:00:00 2001 From: Silva Date: Thu, 13 Mar 2025 09:33:45 -0600 Subject: [PATCH 1/8] Correcion correcion de error de boton agregar --- resources/views/layouts/dashboard.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/layouts/dashboard.blade.php b/resources/views/layouts/dashboard.blade.php index 9ea01e9..dff585b 100644 --- a/resources/views/layouts/dashboard.blade.php +++ b/resources/views/layouts/dashboard.blade.php @@ -186,10 +186,10 @@
From c684d69ebfe120793671fe26ffeb8997ad6f6d21 Mon Sep 17 00:00:00 2001 From: Silva Date: Thu, 13 Mar 2025 09:49:29 -0600 Subject: [PATCH 2/8] Edit de materias La seccion de materias tiene varias opciones --- resources/views/docentesCrearEditar.blade.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/views/docentesCrearEditar.blade.php b/resources/views/docentesCrearEditar.blade.php index 277c60c..f5d33f3 100644 --- a/resources/views/docentesCrearEditar.blade.php +++ b/resources/views/docentesCrearEditar.blade.php @@ -31,7 +31,14 @@
- +
From aa390519c0805a41669aa9ba47dfe353b236547d Mon Sep 17 00:00:00 2001 From: Rubi Date: Thu, 13 Mar 2025 10:12:36 -0600 Subject: [PATCH 3/8] tipoLicencia catalogo tipo de licencias --- .../Controllers/TiposLicenciasController.php | 96 ++++++++++++ app/Models/tiposLicencias.php | 15 ++ database/factories/TiposLicenciasFactory.php | 23 +++ ...13_143153_create_tipos_licencias_table.php | 28 ++++ database/seeders/TiposLicenciasSeeder.php | 17 ++ resources/views/tiposLicencia.blade.php | 145 ++++++++++++++++++ .../views/tiposLicenciaCreaeEditar.blade.php | 83 ++++++++++ routes/web.php | 2 + 8 files changed, 409 insertions(+) create mode 100644 app/Http/Controllers/TiposLicenciasController.php create mode 100644 app/Models/tiposLicencias.php create mode 100644 database/factories/TiposLicenciasFactory.php create mode 100644 database/migrations/2025_03_13_143153_create_tipos_licencias_table.php create mode 100644 database/seeders/TiposLicenciasSeeder.php create mode 100644 resources/views/tiposLicencia.blade.php create mode 100644 resources/views/tiposLicenciaCreaeEditar.blade.php diff --git a/app/Http/Controllers/TiposLicenciasController.php b/app/Http/Controllers/TiposLicenciasController.php new file mode 100644 index 0000000..fd8d379 --- /dev/null +++ b/app/Http/Controllers/TiposLicenciasController.php @@ -0,0 +1,96 @@ +busqueda; + + if($busqueda) { + $tiposLicencias = TiposLicencias::where('nombre', 'LIKE', "%{$busqueda}%")->get(); + + if($tiposLicencias->count() == 0) { + return redirect()->route('tiposLicencias.index') + ->with('error', 'No existe ningún tipo de licencia con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); + } + + // Si solo hay un tipo de licencia, mostrar sus detalles + if($tiposLicencias->count() == 1) { + $tipoLicencia = $tiposLicencias->first(); + return redirect()->route('tiposLicencias.edit', $tipoLicencia->id); + } + + // Si hay múltiples coincidencias, mostrar la lista filtrada + return view('tiposLicencias', ["tiposLicencias" => $tiposLicencias]); + } + + // Si no hay búsqueda, mostrar todos los tipos de licencias + $tiposLicencias = TiposLicencias::all(); + return view('tiposLicencias', ["tiposLicencias" => $tiposLicencias]); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + $tiposLicencias = TiposLicencias::all(); + return view('tiposLicenciasCrearEditar',['tiposLicencias'=>$tiposLicencias]); + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + $tipoLicencia = new TiposLicencias($request->all()); + $tipoLicencia->save(); + return redirect()->route('tiposLicencias.index')->with('success', 'Tipo de licencia creado exitosamente.'); + } + + /** + * Display the specified resource. + */ + public function show(TiposLicencias $tipoLicencia) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $tipoLicencia = TiposLicencias::find($id); + return view('tiposLicenciasCrearEditar',['tipoLicencia'=>$tipoLicencia]); + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id) + { + $tipoLicencia = TiposLicencias::find($id); + $tipoLicencia->fill($request->all()); + $tipoLicencia->save(); + return redirect()->route('tiposLicencias.index')->with('success', 'Tipo de licencia actualizado exitosamente.'); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + $tipoLicencia = TiposLicencias::find($id); + $tipoLicencia->delete(); + return redirect()->route('tiposLicencias.index')->with('success', 'Tipo de licencia eliminado exitosamente.'); + } +} diff --git a/app/Models/tiposLicencias.php b/app/Models/tiposLicencias.php new file mode 100644 index 0000000..285f5d9 --- /dev/null +++ b/app/Models/tiposLicencias.php @@ -0,0 +1,15 @@ + + */ +class TiposLicenciasFactory extends Factory +{ + /** + * Define the model's default state. + * + * @return array + */ + public function definition(): array + { + return [ + // + ]; + } +} diff --git a/database/migrations/2025_03_13_143153_create_tipos_licencias_table.php b/database/migrations/2025_03_13_143153_create_tipos_licencias_table.php new file mode 100644 index 0000000..2e600ce --- /dev/null +++ b/database/migrations/2025_03_13_143153_create_tipos_licencias_table.php @@ -0,0 +1,28 @@ +id(); + $table->string('tipoLicencia'); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('tiposLicencias'); + } +}; diff --git a/database/seeders/TiposLicenciasSeeder.php b/database/seeders/TiposLicenciasSeeder.php new file mode 100644 index 0000000..bd22eb7 --- /dev/null +++ b/database/seeders/TiposLicenciasSeeder.php @@ -0,0 +1,17 @@ + + + @if(session('success')) + + @endif + + @if(session('error')) + + @endif + +
+
+

Gestión de Tipos de Licencias

+ + + Agregar + +
+ + +
+
+
+ +
+ +
+
+ + @if(request('busqueda')) + + Limpiar + + @endif +
+
+ +
+ + + + + + + + + + @foreach($tiposLicencias as $tipoLicencia) + + + + + + @endforeach + +
IDTipo de LicenciaAcciones
{{ $tipoLicencia->id }} + + {{ $tipoLicencia->nombre }} + +
+ + + +
+ @csrf + @method('DELETE') + +
+
+
+
+
+
+ + +@endsection diff --git a/resources/views/tiposLicenciaCreaeEditar.blade.php b/resources/views/tiposLicenciaCreaeEditar.blade.php new file mode 100644 index 0000000..fd3e6f3 --- /dev/null +++ b/resources/views/tiposLicenciaCreaeEditar.blade.php @@ -0,0 +1,83 @@ +@extends('layouts.dashboard') + +@section('content') +
+
+
+
+ +
+

+ {{ isset($tipoLicencia) ? 'Editar Tipo de Licencia' : 'Nuevo Tipo de Licencia' }} +

+
+ +
+
+ + + @if($errors->any()) +
+
+ +
+
    + @foreach($errors->all() as $error) +
  • {{ $error }}
  • + @endforeach +
+
+
+
+ @endif + + +
+ @csrf + @if(isset($tipoLicencia)) + @method('PUT') + @endif + +
+ +
+ +
+
+ +
+ +
+ @error('nombre') +

{{ $message }}

+ @enderror +
+ + +
+ + Cancelar + + +
+
+
+
+
+
+
+@endsection diff --git a/routes/web.php b/routes/web.php index 916dd06..f8d0108 100644 --- a/routes/web.php +++ b/routes/web.php @@ -6,6 +6,7 @@ use App\Http\Controllers\HomeController; use App\Http\Controllers\MarcaController; use App\Http\Controllers\DocentesController; use App\Http\Controllers\TiposVeiculosController; +use App\Http\Controllers\TiposLicenciasController; /* |-------------------------------------------------------------------------- | Web Routes @@ -26,6 +27,7 @@ Auth::routes(['register'=>true,'reset'=>false]); Route::resource('marca', MarcaController::class); Route::resource('docentes', DocentesController::class); Route::resource('vehiculos', TiposVeiculosController::class); +Route::resource('tiposLicencias', TiposLicenciasController::class); // Rutas protegidas que requieren autenticación From 611c9dc918639df774286c65b89102970644c5fb Mon Sep 17 00:00:00 2001 From: sergiomarquez778 Date: Thu, 13 Mar 2025 12:04:28 -0600 Subject: [PATCH 4/8] cambios --- app/Models/Capacidad.php | 1 + database/factories/CapacidadFactory.php | 2 +- ...po_combustible_to_tipos_veiculos_table.php | 28 ------------------- ...5_03_13_133629_create_capacidads_table.php | 2 +- 4 files changed, 3 insertions(+), 30 deletions(-) delete mode 100644 database/migrations/2025_03_13_050724_add_tipo_combustible_to_tipos_veiculos_table.php diff --git a/app/Models/Capacidad.php b/app/Models/Capacidad.php index f495253..43eb662 100644 --- a/app/Models/Capacidad.php +++ b/app/Models/Capacidad.php @@ -5,6 +5,7 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; + class Capacidad extends Model { use HasFactory; diff --git a/database/factories/CapacidadFactory.php b/database/factories/CapacidadFactory.php index 89e59f8..42a3a1e 100644 --- a/database/factories/CapacidadFactory.php +++ b/database/factories/CapacidadFactory.php @@ -17,7 +17,7 @@ class CapacidadFactory extends Factory public function definition(): array { return [ - + // ]; } diff --git a/database/migrations/2025_03_13_050724_add_tipo_combustible_to_tipos_veiculos_table.php b/database/migrations/2025_03_13_050724_add_tipo_combustible_to_tipos_veiculos_table.php deleted file mode 100644 index 07722dc..0000000 --- a/database/migrations/2025_03_13_050724_add_tipo_combustible_to_tipos_veiculos_table.php +++ /dev/null @@ -1,28 +0,0 @@ -string('tipo_combustible')->after('nombre')->nullable(); - }); - } - - /** - * Reverse the migrations. - */ - public function down(): void - { - Schema::table('tipos_veiculos', function (Blueprint $table) { - $table->dropColumn('tipo_combustible'); - }); - } -}; diff --git a/database/migrations/2025_03_13_133629_create_capacidads_table.php b/database/migrations/2025_03_13_133629_create_capacidads_table.php index 87eb55b..59d6557 100644 --- a/database/migrations/2025_03_13_133629_create_capacidads_table.php +++ b/database/migrations/2025_03_13_133629_create_capacidads_table.php @@ -13,7 +13,7 @@ return new class extends Migration { Schema::create('capacidades', function (Blueprint $table) { $table->id(); - $table->integer('capacidad')->unique(); + $table->integer('capacidad'); $table->timestamps(); }); } From 3c23efcfcda2deb516d361424bee88c2d935a5c1 Mon Sep 17 00:00:00 2001 From: sergiomarquez778 Date: Tue, 18 Mar 2025 19:13:23 -0600 Subject: [PATCH 5/8] cambios importantes!!!! MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit en el de marcas ya esta lo de asignar una marca por id de my sql por defecto tambien ya agregue un usuario administrativo tambien cada vez que importen o refresquen la base de datos por defecto las marcas ya estan por defecto a esto me refiero a que no se borraran y lo mismo con el usuario administrativo el usuario es igual que el utilizamos en la cafeteria y la contraseña es 12345678 creo que es todo marcas es su base para empezar con el de ustedes espero y les sirva tambien les deje comentarios de que rive cada cosa y como es que funciona --- app/Http/Controllers/MarcaController.php | 24 +++++++++++---- app/Models/Marca.php | 9 ++++-- app/Models/marc.php | 11 +++++++ .../2014_10_12_000000_create_users_table.php | 5 ++++ .../2025_01_18_230913_create_marcs_table.php | 30 +++++++++++++++++++ .../2025_02_28_192615_create_marcas_table.php | 3 +- resources/views/marcas.blade.php | 4 +-- resources/views/marcasCrearEditar.blade.php | 27 +++++------------ 8 files changed, 83 insertions(+), 30 deletions(-) create mode 100644 app/Models/marc.php create mode 100644 database/migrations/2025_01_18_230913_create_marcs_table.php diff --git a/app/Http/Controllers/MarcaController.php b/app/Http/Controllers/MarcaController.php index c93a0da..1c45e8d 100644 --- a/app/Http/Controllers/MarcaController.php +++ b/app/Http/Controllers/MarcaController.php @@ -4,6 +4,10 @@ namespace App\Http\Controllers; use App\Models\Marca; use Illuminate\Http\Request; +use App\Models\Marc; + + + class MarcaController extends Controller { @@ -42,8 +46,8 @@ class MarcaController extends Controller */ public function create() { - $marcas = Marca::all(); - return view('marcasCrearEditar',['marcas'=>$marcas]); + $marcs = Marc::all(); // Asegúrate de que el modelo Marc esté correctamente importado + return view('marcasCrearEditar', ['marcs' => $marcs]); // Asegúrate de pasar la variable correctamente } /** @@ -69,8 +73,9 @@ class MarcaController extends Controller */ public function edit($id) { - $marca = Marca::find($id); - return view('marcasCrearEditar',['marca'=>$marca]); + $marca = Marca::findOrFail($id); // Busca la marca por ID + $marcs = Marc::all(); // Recupera todas las marcas para el select + return view('marcasCrearEditar', ['marca' => $marca, 'marcs' => $marcs]); // Pasa la marca y las marcas a la vista } /** @@ -78,9 +83,16 @@ class MarcaController extends Controller */ public function update(Request $request, $id) { - $marca = Marca::find($id); - $marca->fill($request->all()); + // Validar los datos del formulario + $request->validate([ + 'marcs_id' => 'required|exists:marcs,id', // Asegúrate de que la marca seleccionada exista + ]); + + // Buscar la marca y actualizarla + $marca = Marca::findOrFail($id); + $marca->marcs_id = $request->marcs_id; // Asigna el nuevo ID de la marca seleccionada $marca->save(); + return redirect()->route('marca.index')->with('success', 'Marca actualizada exitosamente.'); } diff --git a/app/Models/Marca.php b/app/Models/Marca.php index 91be636..66ee531 100644 --- a/app/Models/Marca.php +++ b/app/Models/Marca.php @@ -4,12 +4,17 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\HasOne; class Marca extends Model { use HasFactory; protected $table = 'marcas'; - - protected $fillable = ['nombre']; + + protected $fillable = ['marcs_id']; + public function Marc():HasOne{ + return $this->hasOne(marc::class, 'id','marcs_id'); + + } } diff --git a/app/Models/marc.php b/app/Models/marc.php new file mode 100644 index 0000000..d19eace --- /dev/null +++ b/app/Models/marc.php @@ -0,0 +1,11 @@ +rememberToken(); $table->timestamps(); }); + DB::table('users')->insert([ + 'name'=> 'Administrador', + 'email'=> 'admin@admin.com', + 'password'=> bcrypt('12345678') + ]); } /** diff --git a/database/migrations/2025_01_18_230913_create_marcs_table.php b/database/migrations/2025_01_18_230913_create_marcs_table.php new file mode 100644 index 0000000..1209d69 --- /dev/null +++ b/database/migrations/2025_01_18_230913_create_marcs_table.php @@ -0,0 +1,30 @@ +id(); + $table->string('name'); + $table->timestamps(); + }); + DB::table('marcs')->insert(['name'=> 'chevorel']); + DB::table('marcs')->insert(['name'=> 'nissan']); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('marcs'); + } +}; diff --git a/database/migrations/2025_02_28_192615_create_marcas_table.php b/database/migrations/2025_02_28_192615_create_marcas_table.php index cb30b5f..98f6b19 100644 --- a/database/migrations/2025_02_28_192615_create_marcas_table.php +++ b/database/migrations/2025_02_28_192615_create_marcas_table.php @@ -13,8 +13,9 @@ return new class extends Migration { Schema::create('marcas', function (Blueprint $table) { $table->id(); - $table->string('nombre'); + $table->unsignedBigInteger('marcs_id'); $table->timestamps(); + $table->foreign('marcs_id')->references('id')->on('marcs'); }); } diff --git a/resources/views/marcas.blade.php b/resources/views/marcas.blade.php index 999332e..b454484 100644 --- a/resources/views/marcas.blade.php +++ b/resources/views/marcas.blade.php @@ -50,7 +50,6 @@
- @@ -65,7 +64,7 @@ + @@ -64,28 +65,42 @@ - --}} + @endforeach @@ -96,51 +111,26 @@ -@endsection +@endsection \ No newline at end of file diff --git a/resources/views/marcasCrearEditar.blade.php b/resources/views/marcasCrearEditar.blade.php index e178bbe..b47354e 100644 --- a/resources/views/marcasCrearEditar.blade.php +++ b/resources/views/marcasCrearEditar.blade.php @@ -30,7 +30,6 @@ @endif - -
- - +
+ +
+
+ +
+ +
+ @error('marca') +

{{ $message }}

+ @enderror
-@endsection +@endsection \ No newline at end of file
{{ $marca->id }} - {{ $marca->nombre }} + {{ $marca->Marc->name }}
@@ -113,6 +112,7 @@ function confirmarEdicion(url) { } }); } + function confirmarEliminacion(button) { Swal.fire({ title: '¿Estás seguro?', diff --git a/resources/views/marcasCrearEditar.blade.php b/resources/views/marcasCrearEditar.blade.php index f48795c..cb10a58 100644 --- a/resources/views/marcasCrearEditar.blade.php +++ b/resources/views/marcasCrearEditar.blade.php @@ -42,25 +42,14 @@
-
- -
-
- -
- -
- @error('nombre') -

{{ $message }}

- @enderror +
+ +
From f5264a04f130867227d16e9ccfc72ac5a0db3a34 Mon Sep 17 00:00:00 2001 From: sergiomarquez778 Date: Tue, 18 Mar 2025 21:48:40 -0600 Subject: [PATCH 6/8] cambios nuevos agrege el metodo de estatus el cual no elimina completamente el campo de marca en mysql si no que lo pasa a un estado inactivo pero tambien agregue la funcion en el update conde si queires pudes cambiar el estatus denuevo y poder habilitar esa opcion --- app/Http/Controllers/MarcaController.php | 78 +++++++++---------- ...19_030418_add_columneliminado_tomarcas.php | 29 +++++++ resources/views/marcasCrearEditar.blade.php | 10 +-- 3 files changed, 73 insertions(+), 44 deletions(-) create mode 100644 database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php diff --git a/app/Http/Controllers/MarcaController.php b/app/Http/Controllers/MarcaController.php index 1c45e8d..f0216a3 100644 --- a/app/Http/Controllers/MarcaController.php +++ b/app/Http/Controllers/MarcaController.php @@ -6,9 +6,6 @@ use App\Models\Marca; use Illuminate\Http\Request; use App\Models\Marc; - - - class MarcaController extends Controller { /** @@ -18,23 +15,23 @@ class MarcaController extends Controller { $busqueda = $request->busqueda; - if($busqueda) { - $marcas = Marca::where('nombre', 'LIKE', "%{$busqueda}%")->get(); + if ($busqueda) { + $marcas = Marca::where('nombre', 'LIKE', "%{$busqueda}%")->get(); - if($marcas->count() == 0) { - return redirect()->route('marca.index') - ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); - } + if ($marcas->count() == 0) { + return redirect()->route('marca.index') + ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); + } - // Si solo hay una marca, mostrar sus detalles - if($marcas->count() == 1) { - $marca = $marcas->first(); - return redirect()->route('marca.edit', $marca->id); - } + // Si solo hay una marca, mostrar sus detalles + if ($marcas->count() == 1) { + $marca = $marcas->first(); + return redirect()->route('marca.edit', $marca->id); + } - // Si hay múltiples coincidencias, mostrar la lista filtrada - return view('marca', ["marcas" => $marcas]); - } + // Si hay múltiples coincidencias, mostrar la lista filtrada + return view('marcas', ["marcas" => $marcas]); + } // Si no hay búsqueda, mostrar todas las marcas $marcas = Marca::all(); @@ -47,7 +44,7 @@ class MarcaController extends Controller public function create() { $marcs = Marc::all(); // Asegúrate de que el modelo Marc esté correctamente importado - return view('marcasCrearEditar', ['marcs' => $marcs]); // Asegúrate de pasar la variable correctamente + return view('marcasCrearEditar', ['marcs' => $marcs]); // Pasa la variable correctamente } /** @@ -55,19 +52,12 @@ class MarcaController extends Controller */ public function store(Request $request) { + $marca = new Marca($request->all()); $marca->save(); return redirect()->route('marca.index')->with('success', 'Marca creada exitosamente.'); } - /** - * Display the specified resource. - */ - public function show(Marca $marca) - { - // - } - /** * Show the form for editing the specified resource. */ @@ -83,27 +73,37 @@ class MarcaController extends Controller */ public function update(Request $request, $id) { - // Validar los datos del formulario - $request->validate([ - 'marcs_id' => 'required|exists:marcs,id', // Asegúrate de que la marca seleccionada exista - ]); + $marca = Marca::findOrFail($id); // Encuentra la marca por ID + + // Si el campo 'recuperar' está presente, cambia el estado a activo + if ($request->has('recuperar')) { + $marca->eliminado = 0; // Marca como activa + } else { + // Actualiza los datos de la marca directamente + $marca->fill($request->all()); // Rellena los datos sin validación + } - // Buscar la marca y actualizarla - $marca = Marca::findOrFail($id); - $marca->marcs_id = $request->marcs_id; // Asigna el nuevo ID de la marca seleccionada - $marca->save(); + $marca->save(); // Guarda los cambios - return redirect()->route('marca.index')->with('success', 'Marca actualizada exitosamente.'); + return redirect()->route('marca.index')->with('success', 'Marca actualizada correctamente.'); } /** * Remove the specified resource from storage. */ - public function destroy($id ) + public function destroy($id) { - $marca = Marca::find($id); - $marca->delete(); - return redirect()->route('marca.index')->with('success', 'Marca eliminada exitosamente.'); + // Encuentra la marca por ID + $marca = Marca::findOrFail($id); + + // Cambia el campo 'eliminado' a 1 (inactivo) + $marca->eliminado = 1; // Marca como inactiva + $marca->save(); // Guarda los cambios + // Redirige con un mensaje de éxito + return redirect()->route('marca.index')->with('success', 'Marca inactivada correctamente.'); } + /** + * Recover the specified resource. + */ } diff --git a/database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php b/database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php new file mode 100644 index 0000000..bca0bba --- /dev/null +++ b/database/migrations/2025_03_19_030418_add_columneliminado_tomarcas.php @@ -0,0 +1,29 @@ +boolean('eliminado')->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('marcas', function (Blueprint $table) { + $table->dropColumn('eliminado'); + }); + } +}; diff --git a/resources/views/marcasCrearEditar.blade.php b/resources/views/marcasCrearEditar.blade.php index cb10a58..e178bbe 100644 --- a/resources/views/marcasCrearEditar.blade.php +++ b/resources/views/marcasCrearEditar.blade.php @@ -42,11 +42,11 @@
-
- - + + @foreach($marcs as $marc) @endforeach From 39dc0009b852f248f0a9b01b700b99a4d41455d9 Mon Sep 17 00:00:00 2001 From: sergiomarquez778 Date: Tue, 18 Mar 2025 22:50:16 -0600 Subject: [PATCH 7/8] barra de busqueda MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit añadi una mejor barra de busqueda ya actualizada y mejorada que cumple su funcion para la mejor agilidad de navegacion --- app/Http/Controllers/MarcaController.php | 41 +++++++++++------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/app/Http/Controllers/MarcaController.php b/app/Http/Controllers/MarcaController.php index f0216a3..1fb0157 100644 --- a/app/Http/Controllers/MarcaController.php +++ b/app/Http/Controllers/MarcaController.php @@ -11,33 +11,28 @@ class MarcaController extends Controller /** * Display a listing of the resource. */ - public function index(Request $request) - { - $busqueda = $request->busqueda; - - if ($busqueda) { - $marcas = Marca::where('nombre', 'LIKE', "%{$busqueda}%")->get(); - - if ($marcas->count() == 0) { - return redirect()->route('marca.index') - ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); + public function index(Request $request) + { + $busqueda = $request->busqueda; + + if ($busqueda) { + // Busca en la tabla 'marcs' usando la relación + $marcas = Marca::whereHas('Marc', function($query) use ($busqueda) { + $query->where('name', 'LIKE', "%{$busqueda}%"); + })->get(); + + if ($marcas->isEmpty()) { + return redirect()->route('marca.index') + ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); + } + } else { + // Si no hay búsqueda, mostrar todas las marcas + $marcas = Marca::all(); } - // Si solo hay una marca, mostrar sus detalles - if ($marcas->count() == 1) { - $marca = $marcas->first(); - return redirect()->route('marca.edit', $marca->id); - } - - // Si hay múltiples coincidencias, mostrar la lista filtrada - return view('marcas', ["marcas" => $marcas]); + return view('marcas', ['marcas' => $marcas]); } - // Si no hay búsqueda, mostrar todas las marcas - $marcas = Marca::all(); - return view('marcas', ["marcas" => $marcas]); - } - /** * Show the form for creating a new resource. */ From cfca95dffb7a0eefdd32dc397d37870bf6941c92 Mon Sep 17 00:00:00 2001 From: sergiomarquez778 Date: Wed, 19 Mar 2025 21:27:19 -0600 Subject: [PATCH 8/8] cambios quite el estatus de momento de lo comente por si lo necesitamos en el futuro y tambien ya quedo bien todolo demas --- -i | 0 app/Http/Controllers/MarcaController.php | 68 ++++------ app/Models/Marca.php | 6 +- .../2025_01_18_230913_create_marcs_table.php | 36 ++++- .../2025_02_28_192615_create_marcas_table.php | 4 +- resources/views/marcas.blade.php | 128 ++++++++---------- resources/views/marcasCrearEditar.blade.php | 32 +++-- 7 files changed, 145 insertions(+), 129 deletions(-) create mode 100644 -i diff --git a/ -i b/ -i new file mode 100644 index 0000000..e69de29 diff --git a/app/Http/Controllers/MarcaController.php b/app/Http/Controllers/MarcaController.php index 1fb0157..9bafa5b 100644 --- a/app/Http/Controllers/MarcaController.php +++ b/app/Http/Controllers/MarcaController.php @@ -4,42 +4,38 @@ namespace App\Http\Controllers; use App\Models\Marca; use Illuminate\Http\Request; -use App\Models\Marc; class MarcaController extends Controller { /** * Display a listing of the resource. */ - public function index(Request $request) - { - $busqueda = $request->busqueda; + public function index(Request $request) + { + $busqueda = $request->busqueda; - if ($busqueda) { - // Busca en la tabla 'marcs' usando la relación - $marcas = Marca::whereHas('Marc', function($query) use ($busqueda) { - $query->where('name', 'LIKE', "%{$busqueda}%"); - })->get(); + if ($busqueda) { + // Busca en la columna 'marca' de la tabla 'marcas' + $marcas = Marca::where('marca', 'LIKE', "%{$busqueda}%")->get(); - if ($marcas->isEmpty()) { - return redirect()->route('marca.index') - ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); - } - } else { - // Si no hay búsqueda, mostrar todas las marcas - $marcas = Marca::all(); + if ($marcas->isEmpty()) { + return redirect()->route('marca.index') + ->with('error', 'No existe ninguna marca con el nombre "' . $busqueda . '". Por favor, inténtalo de nuevo.'); } - - return view('marcas', ['marcas' => $marcas]); + } else { + // Si no hay búsqueda, mostrar todas las marcas + $marcas = Marca::where('eliminado', 0)->get(); } + return view('marcas', ['marcas' => $marcas]); + } + /** * Show the form for creating a new resource. */ public function create() { - $marcs = Marc::all(); // Asegúrate de que el modelo Marc esté correctamente importado - return view('marcasCrearEditar', ['marcs' => $marcs]); // Pasa la variable correctamente + return view('marcasCrearEditar', ['marca' => null]); // No se necesita pasar marcas } /** @@ -47,9 +43,12 @@ class MarcaController extends Controller */ public function store(Request $request) { - - $marca = new Marca($request->all()); + // Crea una nueva marca + $marca = new Marca(); + $marca->marca = $request->marca; // Asigna el nombre ingresado por el usuario + $marca->eliminado = 0; // Marca como activa por defecto $marca->save(); + return redirect()->route('marca.index')->with('success', 'Marca creada exitosamente.'); } @@ -59,8 +58,7 @@ class MarcaController extends Controller public function edit($id) { $marca = Marca::findOrFail($id); // Busca la marca por ID - $marcs = Marc::all(); // Recupera todas las marcas para el select - return view('marcasCrearEditar', ['marca' => $marca, 'marcs' => $marcs]); // Pasa la marca y las marcas a la vista + return view('marcasCrearEditar', ['marca' => $marca]); // Pasa la marca a la vista } /** @@ -69,15 +67,8 @@ class MarcaController extends Controller public function update(Request $request, $id) { $marca = Marca::findOrFail($id); // Encuentra la marca por ID - - // Si el campo 'recuperar' está presente, cambia el estado a activo - if ($request->has('recuperar')) { - $marca->eliminado = 0; // Marca como activa - } else { - // Actualiza los datos de la marca directamente - $marca->fill($request->all()); // Rellena los datos sin validación - } - + $marca->marca = $request->marca; // Actualiza el nombre de la marca + $marca->eliminado = 0; // Cambia el estado a activo si se está editando $marca->save(); // Guarda los cambios return redirect()->route('marca.index')->with('success', 'Marca actualizada correctamente.'); @@ -88,17 +79,10 @@ class MarcaController extends Controller */ public function destroy($id) { - // Encuentra la marca por ID - $marca = Marca::findOrFail($id); - - // Cambia el campo 'eliminado' a 1 (inactivo) - $marca->eliminado = 1; // Marca como inactiva + $marca = Marca::findOrFail($id); // Encuentra la marca por ID + $marca->eliminado = 1; // Cambia el estado a inactivo $marca->save(); // Guarda los cambios - // Redirige con un mensaje de éxito return redirect()->route('marca.index')->with('success', 'Marca inactivada correctamente.'); } - /** - * Recover the specified resource. - */ } diff --git a/app/Models/Marca.php b/app/Models/Marca.php index 66ee531..a65769b 100644 --- a/app/Models/Marca.php +++ b/app/Models/Marca.php @@ -12,9 +12,9 @@ class Marca extends Model protected $table = 'marcas'; - protected $fillable = ['marcs_id']; - public function Marc():HasOne{ + protected $fillable = ['marca']; + /*public function Marc():HasOne{ return $this->hasOne(marc::class, 'id','marcs_id'); - } + }*/ } diff --git a/database/migrations/2025_01_18_230913_create_marcs_table.php b/database/migrations/2025_01_18_230913_create_marcs_table.php index 1209d69..55461fe 100644 --- a/database/migrations/2025_01_18_230913_create_marcs_table.php +++ b/database/migrations/2025_01_18_230913_create_marcs_table.php @@ -16,8 +16,40 @@ return new class extends Migration $table->string('name'); $table->timestamps(); }); - DB::table('marcs')->insert(['name'=> 'chevorel']); - DB::table('marcs')->insert(['name'=> 'nissan']); + DB::table('marcs')->insert([ + ['name' => 'chevrolet'], + ['name' => 'nissan'], + ['name' => 'ford'], + ['name' => 'toyota'], + ['name' => 'honda'], + ['name' => 'bmw'], + ['name' => 'audi'], + ['name' => 'mercedes-benz'], + ['name' => 'volkswagen'], + ['name' => 'hyundai'], + ['name' => 'kia'], + ['name' => 'subaru'], + ['name' => 'mazda'], + ['name' => 'peugeot'], + ['name' => 'renault'], + ['name' => 'fiat'], + ['name' => 'land rover'], + ['name' => 'jaguar'], + ['name' => 'tesla'], + ['name' => 'porsche'], + ['name' => 'volvo'], + ['name' => 'mitsubishi'], + ['name' => 'chrysler'], + ['name' => 'dodge'], + ['name' => 'jeep'], + ['name' => 'buick'], + ['name' => 'gmc'], + ['name' => 'infiniti'], + ['name' => 'lexus'], + ['name' => 'acura'], + ['name' => 'alfa romeo'], + // Agrega más marcas según sea necesario + ]); } /** diff --git a/database/migrations/2025_02_28_192615_create_marcas_table.php b/database/migrations/2025_02_28_192615_create_marcas_table.php index 98f6b19..d1fc322 100644 --- a/database/migrations/2025_02_28_192615_create_marcas_table.php +++ b/database/migrations/2025_02_28_192615_create_marcas_table.php @@ -13,9 +13,9 @@ return new class extends Migration { Schema::create('marcas', function (Blueprint $table) { $table->id(); - $table->unsignedBigInteger('marcs_id'); + $table->string('marca'); $table->timestamps(); - $table->foreign('marcs_id')->references('id')->on('marcs'); + // funciona como enlace de una tabla a otra par agregar valores ya definidos $table->foreign('marcs_id')->references('id')->on('marcs'); }); } diff --git a/resources/views/marcas.blade.php b/resources/views/marcas.blade.php index b454484..3564c4a 100644 --- a/resources/views/marcas.blade.php +++ b/resources/views/marcas.blade.php @@ -2,7 +2,9 @@ @section('content')
- + + + @if(session('success'))
ID MarcaAcciones
{{ $marca->id }} - {{ $marca->Marc->name }} + {{ $marca->marca }} - + @if($marca->eliminado == 0) + + Activo + + @else + + Inactivo + + @endif + + @if($marca->eliminado == 1) + + @csrf + @method('PUT') + + + + + + @else + + -
+ @csrf @method('DELETE') - + + +
- + @endif