From ac2de7117991a54f4e0c7b27eea6996f9d0a02db Mon Sep 17 00:00:00 2001 From: fede Date: Thu, 30 Jan 2025 04:47:37 -0300 Subject: [PATCH] bueno ahora se pueden modificar los clientes --- Aspnet/Controllers/AdminController.cs | 49 +++++++++++ Entidades/Admin/UpdateUsuarioAdmin.cs | 8 ++ .../ModalModificarPropietarios.svelte | 54 ++++++++++++ Front/src/paginas/AdminUsuarios.svelte | 87 ++++++++++++++++--- Front/src/types.d.ts | 8 ++ Modelo/RepositorioUsuarios.cs | 15 ++++ 6 files changed, 210 insertions(+), 11 deletions(-) create mode 100644 Entidades/Admin/UpdateUsuarioAdmin.cs create mode 100644 Front/src/Componentes/ModalModificarPropietarios.svelte diff --git a/Aspnet/Controllers/AdminController.cs b/Aspnet/Controllers/AdminController.cs index 50e76be..04286d8 100644 --- a/Aspnet/Controllers/AdminController.cs +++ b/Aspnet/Controllers/AdminController.cs @@ -21,6 +21,46 @@ public class AdminController: ControllerBase return Ok(list); } + [HttpGet("api/admin/cliente")] + public IActionResult ObtenerCliente([FromHeader(Name ="Auth")]string Auth, long dni = 0){ + if (String.IsNullOrEmpty(Auth)) return Unauthorized(); + var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 9); + if (validacion1 == false) return Unauthorized(); + if (dni <= 0) return BadRequest(new { message = "No puede haber un dni 0 o menor"}); + + Cliente? cambio = RepositorioUsuarios.Singleton.ObtenerClientePorDni(dni); + if (cambio == null) BadRequest(new { message = "no hay un cliente por ese dni"}); + + UpdateUsuarioAdmin a = new UpdateUsuarioAdmin{ + Apellido = cambio.Apellido, + Celular = cambio.Celular, + Domicilio = cambio.Domicilio, + Nombre = cambio.Nombre, + }; + + return Ok(a); + } + + [HttpPatch("api/admin/cliente")] + public IActionResult PatchCliente([FromHeader(Name ="Auth")]string Auth, [FromBody]UpdateUsuarioAdmin dto, [FromQuery]long dni=0){ + if (String.IsNullOrEmpty(Auth)) return Unauthorized(); + var validacion1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 9); + if (validacion1 == false) return Unauthorized(); + if (dni <= 0) return BadRequest(new { message = "No puede haber un dni 0 o menor"}); + + var validacion2 = checkdto(dto); + if (validacion2 != "") return BadRequest(new { message = validacion2}); + + Cliente?cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth); + if (cli == null) return Unauthorized(); + + bool ret = RepositorioUsuarios.Singleton.PatchUsuario(dto, dni, cli.Dni); + + return ret? + Ok(new { message = "Se actualizaron los datos"}): + BadRequest(new { message = "Fallo al guardar los datos"}); + } + [HttpGet("api/admin/clientes/grupo")] public IActionResult GetGruposByCliente([FromHeader(Name ="Auth")]string Auth, [FromQuery]long Dni){ if (String.IsNullOrEmpty(Auth)) return Unauthorized(); @@ -159,4 +199,13 @@ public class AdminController: ControllerBase int ret = RepositorioPropiedades.Singleton.CuantasPaginasBusqueda(cantidadHabitaciones, servicios, tipoPropiedad, 0); return Ok(new { message = ret}); } + + private string checkdto(UpdateUsuarioAdmin d){ + string ret =""; + if (d.Nombre=="") ret+="Campo Nombre vacio\n"; + if (d.Apellido=="") ret+="Campo Apellido vacio\n"; + if (d.Celular=="") ret+="Campo Celular vacio\n"; + if (d.Domicilio=="")ret+="Campo Domicilio vacio\n"; + return ret; + } } \ No newline at end of file diff --git a/Entidades/Admin/UpdateUsuarioAdmin.cs b/Entidades/Admin/UpdateUsuarioAdmin.cs new file mode 100644 index 0000000..97846fc --- /dev/null +++ b/Entidades/Admin/UpdateUsuarioAdmin.cs @@ -0,0 +1,8 @@ +namespace Entidades.Admin; +public class UpdateUsuarioAdmin { + public string Nombre { get; set; } = null!; + public string Apellido { get; set; } = null!; + public string Domicilio { get; set; } = null!; + public string Celular { get; set; } = null!; + +} \ No newline at end of file diff --git a/Front/src/Componentes/ModalModificarPropietarios.svelte b/Front/src/Componentes/ModalModificarPropietarios.svelte new file mode 100644 index 0000000..8a0f07b --- /dev/null +++ b/Front/src/Componentes/ModalModificarPropietarios.svelte @@ -0,0 +1,54 @@ + + + \ No newline at end of file diff --git a/Front/src/paginas/AdminUsuarios.svelte b/Front/src/paginas/AdminUsuarios.svelte index 2bca06b..da3c5d2 100644 --- a/Front/src/paginas/AdminUsuarios.svelte +++ b/Front/src/paginas/AdminUsuarios.svelte @@ -1,11 +1,13 @@ @@ -148,13 +205,18 @@ !!(modaldata = "")}/> {/if} +{#if showModificarCliente} +!!(showModificarCliente = false)} + onConfirm={patchCliente}/> +{/if} +
-
+
- +
@@ -171,14 +233,17 @@ {/each} @@ -186,7 +251,7 @@
Dni{cli.email} {#if cli.habilitado} - {:else} - {/if} +
-
+
@@ -208,11 +273,11 @@ {/each} {:else if SelCliente != null} - + {:else} - + {/if} diff --git a/Front/src/types.d.ts b/Front/src/types.d.ts index 175ed29..89acc40 100644 --- a/Front/src/types.d.ts +++ b/Front/src/types.d.ts @@ -179,4 +179,12 @@ export type LogDetalleDto = { columna:string, valorAnterior:string, valorNuevo:string +} + +export type UpdateCliente = { + dni:number, + nombre:string, + apellido:string, + domicilio:string, + celular:string, } \ No newline at end of file diff --git a/Modelo/RepositorioUsuarios.cs b/Modelo/RepositorioUsuarios.cs index fae8e0d..08bec3f 100644 --- a/Modelo/RepositorioUsuarios.cs +++ b/Modelo/RepositorioUsuarios.cs @@ -3,6 +3,7 @@ using System.Text; using Entidades.Dto; using Entidades; using Microsoft.EntityFrameworkCore; +using Entidades.Admin; namespace Modelo; @@ -186,4 +187,18 @@ public class RepositorioUsuarios: RepositorioBase { if (cli == null|| cli.Dni == 0) return null; return cli; } + + public bool PatchUsuario(UpdateUsuarioAdmin dto, long dni, long responsabledni) { + var con = Context; + var usu = con.Clientes.FirstOrDefault(x=>x.Dni ==dni); + if (usu == null) return false; + + usu.Nombre = dto.Nombre; + usu.Apellido = dto.Apellido; + usu.Celular = dto.Celular; + usu.Domicilio = dto.Domicilio; + + GenerarLog(con, responsabledni, "Patch Usuario"); + return Guardar(con); + } }
Este Cliente no tiene GruposEste Cliente no tiene Grupos
Seleccione un cliente para ver sus gruposSeleccione un cliente para ver sus grupos