From fcac7372f1b562a064c0149a195dd66821b8fae4 Mon Sep 17 00:00:00 2001 From: Alfonso Rafael Solis Rangel Date: Sat, 24 Aug 2024 16:20:43 -0600 Subject: [PATCH 01/11] Relacion de contactos y instituciones --- .../migrations/2024_06_23_201805_create_contactos_table.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/database/migrations/2024_06_23_201805_create_contactos_table.php b/database/migrations/2024_06_23_201805_create_contactos_table.php index 8a808d8..8478389 100644 --- a/database/migrations/2024_06_23_201805_create_contactos_table.php +++ b/database/migrations/2024_06_23_201805_create_contactos_table.php @@ -38,11 +38,11 @@ public function up(): void $table->unsignedBigInteger('profesion_id')->nullable(); $table->unsignedBigInteger('cargo_id')->nullable(); $table->unsignedBigInteger('caracteristica_id')->nullable(); - //$table->unsignedBigInteger('institucion_id')->nullable(); + $table->unsignedBigInteger('institucion_id')->nullable(); $table->foreign('conyuge_id')->references('id')->on('contactos')->nullable(); $table->foreign('profesion_id')->references('id')->on('profesions')->nullable(); - //$table->foreign('institucion_id')->references('id')->on('')->nullable(); + $table->foreign('institucion_id')->references('id')->on('instituciones')->nullable(); $table->foreign('cargo_id')->references('id')->on('cargos')->nullable(); $table->foreign('caracteristica_id')->references('id')->on('caracteristicas')->nullable(); -- GitLab From eea54ffaf201032220c95d64c97073e01f121ff9 Mon Sep 17 00:00:00 2001 From: Alfonso Rafael Solis Rangel Date: Sat, 24 Aug 2024 16:21:15 -0600 Subject: [PATCH 02/11] Adaptando controlador para agregar la institucion --- app/Http/Controllers/ContactoController.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/ContactoController.php b/app/Http/Controllers/ContactoController.php index 89b8816..feabab8 100644 --- a/app/Http/Controllers/ContactoController.php +++ b/app/Http/Controllers/ContactoController.php @@ -8,6 +8,7 @@ use App\Models\Contacto; use App\Models\CorreoContactos; use App\Models\Grupos; +use App\Models\Instituciones; use App\Models\Profesion; use App\Models\Subgrupo; use App\Models\Telefono; @@ -17,7 +18,6 @@ use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Support\Facades\Storage; -use Illuminate\Support\Facades\Log; class ContactoController extends Controller { @@ -42,7 +42,8 @@ public function create() $caracteristicas = Caracteristicas::get(); $subgrupos = Subgrupo::get(); $grupos = Grupos::get(); - return view('adminGen.contactos.create', compact('conyuges', 'profesiones', 'cargos', 'caracteristicas', 'subgrupos', 'grupos')); + $instituciones = Instituciones::get(); + return view('adminGen.contactos.create', compact('conyuges', 'profesiones', 'cargos', 'caracteristicas', 'subgrupos', 'grupos', 'instituciones')); } /** @@ -89,7 +90,7 @@ public function store(Request $request) 'caracteristica_id', 'mes_cump', 'dia_cump', - //institucion_id + 'institucion_id' ]; $requestData = $request->all(); foreach ($fieldsToCheck as $field) { -- GitLab From 13b049d1888c25ffe91561576bd9709a4b280b30 Mon Sep 17 00:00:00 2001 From: Alfonso Rafael Solis Rangel Date: Sat, 24 Aug 2024 16:31:25 -0600 Subject: [PATCH 03/11] Implementacion de las instituciones en el forumulario --- .../views/adminGen/contactos/create.blade.php | 40 ++++++++++++------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/resources/views/adminGen/contactos/create.blade.php b/resources/views/adminGen/contactos/create.blade.php index 1fcd347..4045e1e 100644 --- a/resources/views/adminGen/contactos/create.blade.php +++ b/resources/views/adminGen/contactos/create.blade.php @@ -189,15 +189,7 @@
-
- - -
+
+
+ + +
-
+
+
+ + +
-
- - +
+
+ + +

@@ -474,7 +486,7 @@ NiceSelect.bind(document.getElementById("profesion_id"), options); NiceSelect.bind(document.getElementById("cargo_id"), options); NiceSelect.bind(document.getElementById("caracteristica_id"), options); - NiceSelect.bind(document.getElementById("subgrupo_id"), options); + NiceSelect.bind(document.getElementById("institucion_id"), options); document.querySelectorAll('.nice-select .current').forEach(el => { if (el.textContent.trim() === 'Select an option') { -- GitLab From 4f8d551c7fc72ecd4f26c56f6fe19a1a81600269 Mon Sep 17 00:00:00 2001 From: Alfonso Rafael Solis Rangel Date: Sun, 25 Aug 2024 18:30:04 -0600 Subject: [PATCH 04/11] instituciones --- app/Models/Contacto.php | 7 ++++++- app/Models/Instituciones.php | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/Models/Contacto.php b/app/Models/Contacto.php index 64d6ae5..79465e8 100644 --- a/app/Models/Contacto.php +++ b/app/Models/Contacto.php @@ -39,7 +39,7 @@ class Contacto extends Model 'profesion_id', 'cargo_id', 'caracteristica_id', - //'institucion_id', + 'institucion_id', ]; public function profesion(): BelongsTo @@ -86,4 +86,9 @@ public function grupos(): BelongsToMany { return $this->belongsToMany(Grupos::class, 'contactos_grupos', 'contacto_id', 'grupo_id'); } + + public function institucion(): BelongsTo + { + return $this->belongsTo(Instituciones::class); + } } diff --git a/app/Models/Instituciones.php b/app/Models/Instituciones.php index 7d97e1d..3572346 100644 --- a/app/Models/Instituciones.php +++ b/app/Models/Instituciones.php @@ -4,6 +4,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; +use Illuminate\Database\Eloquent\Relations\HasMany; class Instituciones extends Model { @@ -40,4 +41,9 @@ public function telefonos() { return $this->hasMany(TelefonoInst::class, 'instituciones_id'); } + + public function contactos(): HasMany + { + return $this->hasMany(Contacto::class); + } } -- GitLab From 2ad21b803c1936ca8a9e9505d44411b25bb8014e Mon Sep 17 00:00:00 2001 From: Alfonso Rafael Solis Rangel Date: Sun, 25 Aug 2024 18:47:01 -0600 Subject: [PATCH 05/11] logotipo de gobierno del estado --- public/assets/images/SGG_Color.png | Bin 0 -> 30385 bytes .../views/components/common/header.blade.php | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 public/assets/images/SGG_Color.png diff --git a/public/assets/images/SGG_Color.png b/public/assets/images/SGG_Color.png new file mode 100644 index 0000000000000000000000000000000000000000..a88f5e66ea0d82eb174132deaccb34ad3f98c1ad GIT binary patch literal 30385 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 DVqoeV literal 0 HcmV?d00001 diff --git a/resources/views/components/common/header.blade.php b/resources/views/components/common/header.blade.php index 0094e80..a2d8c67 100644 --- a/resources/views/components/common/header.blade.php +++ b/resources/views/components/common/header.blade.php @@ -73,7 +73,7 @@ class="flex items-center p-2 rounded-full bg-white-light/40 dark:bg-dark/40 hove -- GitLab From 1353ec4dda09b09aaeaf809d98128cba13fade2d Mon Sep 17 00:00:00 2001 From: Alfonso Rafael Solis Rangel Date: Sun, 25 Aug 2024 19:13:20 -0600 Subject: [PATCH 09/11] Correccion en las opciones de las instituciones --- .../views/adminGen/instituciones/create.blade.php | 12 ++++++------ .../views/adminGen/instituciones/edit.blade.php | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/resources/views/adminGen/instituciones/create.blade.php b/resources/views/adminGen/instituciones/create.blade.php index 5aef2bd..85c85dc 100644 --- a/resources/views/adminGen/instituciones/create.blade.php +++ b/resources/views/adminGen/instituciones/create.blade.php @@ -19,14 +19,14 @@
-- GitLab From 545d35a8f024ac014ea7bac70cd0aa65a554ff68 Mon Sep 17 00:00:00 2001 From: Alfonso Rafael Solis Rangel Date: Sun, 25 Aug 2024 20:10:01 -0600 Subject: [PATCH 11/11] Correcion en el modelo de actualizar contacto --- app/Http/Controllers/ContactoController.php | 18 +- .../views/adminGen/contactos/edit.blade.php | 732 ++++++++++-------- 2 files changed, 427 insertions(+), 323 deletions(-) diff --git a/app/Http/Controllers/ContactoController.php b/app/Http/Controllers/ContactoController.php index feabab8..e3e6aad 100644 --- a/app/Http/Controllers/ContactoController.php +++ b/app/Http/Controllers/ContactoController.php @@ -170,9 +170,10 @@ public function edit(string $id) $cargos = cargos::get(); $caracteristicas = Caracteristicas::get(); $subgrupos = Subgrupo::get(); - $contacto = Contacto::with(['telefonos', 'redes', 'correos'])->findOrFail($id); - //dd($contacto); - return view('adminGen.contactos.edit', compact('contacto', 'conyuges', 'profesiones', 'cargos', 'caracteristicas', 'subgrupos')); + $grupos = Grupos::get(); + $instituciones = Instituciones::get(); + $contacto = Contacto::with(['telefonos', 'redes', 'correos', 'grupos', 'subgrupos'])->findOrFail($id); + return view('adminGen.contactos.edit', compact('contacto', 'conyuges', 'profesiones', 'cargos', 'caracteristicas', 'subgrupos', 'grupos', 'instituciones')); } /** @@ -198,7 +199,7 @@ public function update(Request $request, string $id) 'subgrupo_id', 'mes_cump', 'dia_cump', - //institucion_id + 'institucion_id' ]; $requestData = $request->all(); foreach ($fieldsToCheck as $field) { @@ -309,6 +310,15 @@ public function update(Request $request, string $id) if (!empty($changes)) { Auditoria::insert($changes); } + + // Sincronizar subgrupos y grupos + if ($request->has('subgrupo_id')) { + $contacto->subgrupos()->sync($request->input('subgrupo_id')); + } + + if ($request->has('grupo_id')) { + $contacto->grupos()->sync($request->input('grupo_id')); + } // Actualizar los datos del contacto $contacto->conyuge_id = $request->input('conyuge_id') !== 'null' ? $request->input('conyuge_id') : null; diff --git a/resources/views/adminGen/contactos/edit.blade.php b/resources/views/adminGen/contactos/edit.blade.php index f9ee2a8..7a07a2a 100644 --- a/resources/views/adminGen/contactos/edit.blade.php +++ b/resources/views/adminGen/contactos/edit.blade.php @@ -24,14 +24,15 @@
-
-
- @csrf - @method('PUT') + + @csrf + @method('PUT') - -
-
+ +
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
- - + + @if($contacto->foto_perfil) +
+ Foto de perfil +
+ @endif +
+
+ +
+
+
+ + @foreach($contacto->subgrupos as $subgrupoSeleccionado) +
+
+ + +
+
+ @endforeach +
+
+ + @foreach($contacto->grupos as $grupoSeleccionado) +
+
+ + +
+
+ @endforeach +
+ + +
+
+
+ +
- - + +
+
+ + +
- - + +
-
-
-
- - +
+ +
-
- - +
+ +
-
- - +
+ +
+
+
+ +
-
- - -
-
- - +
+ +
-
- - +
+ + +
+
+ +
- - + +
-
-
-
- - +
+ +
-
- - - - +
+ +
-
- - @if($contacto->foto_perfil) -
- Foto de perfil -
- @endif - -

-
- -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
- -
-
- @foreach($contacto->telefonos as $telefono) -
-
- - -
-
- - -
-
- - -
-
- - +
+
+ @foreach($contacto->telefonos as $telefono) +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ +
-
- - -
-
- - -
-
- - -
-
- - -
- -
- -
-
- @endforeach + @endforeach +
+ +
- -
-
-
-
- @foreach($contacto->redes as $red) -
-
- - -
-
- - -
-
- +
+
+ @foreach($contacto->redes as $red) +
+
+ + +
+
+ + +
+
+ +
-
- @endforeach + @endforeach +
+ +
- -
-
-
-
- @foreach($contacto->correos as $correo) -
-
- - -
-
- - -
-
- +
+
+ @foreach($contacto->correos as $correo) +
+
+ + +
+
+ + +
+
+ +
-
- @endforeach + @endforeach +
+ +
- -
-
-
-

Enviar formulario

-
-

Por favor, revise toda la información antes de enviar el formulario.

-

Si encuentra algún error, puede regresar y editar la información antes de enviar.

+
+

Enviar formulario

+
+

Por favor, revise toda la información antes de enviar el formulario.

+

Si encuentra algún error, puede regresar y editar la información antes de enviar.

+
+
+

- -
-
- +
- +
@@ -523,9 +581,13 @@ const agregarBtnTel = document.getElementById('agregarBtnTel'); const agregarBtnRed = document.getElementById('agregarBtnRed'); const agregarBtnCorreo = document.getElementById('agregarBtnCorreo'); + const agregarBtnSubgrupo = document.getElementById('agregarBtnSubgrupo'); + const agregarBtnGrupo = document.getElementById('agregarBtnGrupo'); const dynamicFormContainerTel = document.getElementById('dynamicFormContainerTel'); const dynamicFormContainerRed = document.getElementById('dynamicFormContainerRed'); const dynamicFormContainerCorreo = document.getElementById('dynamicFormContainerCorreo'); + const dynamicFormContainerSubgrupos = document.getElementById('dynamicFormContainerSubgrupos'); + const dynamicFormContainerGrupos = document.getElementById('dynamicFormContainerGrupos'); agregarBtnTel.addEventListener('click', function() { const newFormGroup = document.createElement('div'); @@ -662,6 +724,38 @@ }); }); + agregarBtnSubgrupo.addEventListener('click', function(){ + const newFormGroup = document.createElement('div'); + newFormGroup.innerHTML = ` +
+ + +
+ `; + dynamicFormContainerSubgrupos.appendChild(newFormGroup); + }); + + agregarBtnGrupo.addEventListener('click', function(){ + const newFormGroup = document.createElement('div'); + newFormGroup.innerHTML = ` +
+ + +
+ `; + dynamicFormContainerGrupos.appendChild(newFormGroup); + }); + // Añadir evento de clic para eliminar a los grupos iniciales document.querySelectorAll('.removeBtn').forEach(function(btn) { btn.addEventListener('click', function() { -- GitLab