2023-02-02 10:50:02 -05:00
|
|
|
|
using MSAdminUsuarios.Context;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using MSAdminUsuarios.Dto;
|
|
|
|
|
using Security;
|
|
|
|
|
using MSAdminUsuarios.Models;
|
2023-02-14 18:01:33 -05:00
|
|
|
|
using Microsoft.AspNetCore.Components.Forms;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
2023-03-15 15:57:59 -05:00
|
|
|
|
using System.Linq;
|
|
|
|
|
using Microsoft.IdentityModel.Tokens;
|
2023-03-21 18:55:21 -05:00
|
|
|
|
using RabbitMQ.Client;
|
2023-12-06 14:11:53 -05:00
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using System.Threading.Channels;
|
|
|
|
|
using MSAdminUsuarios.Dto.Externos.MsAgendaMedica;
|
|
|
|
|
using static MSAdminUsuarios.Utils.RabbitMQService;
|
|
|
|
|
using MSAdminUsuarios.Utils;
|
2024-04-11 06:51:05 -05:00
|
|
|
|
using Microsoft.EntityFrameworkCore.Storage;
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
|
|
|
|
namespace MSAdminUsuarios.Controllers
|
|
|
|
|
{
|
|
|
|
|
[ApiController]
|
|
|
|
|
[Route("[controller]")]
|
|
|
|
|
public class UsuariosController : ControllerBase
|
|
|
|
|
{
|
|
|
|
|
private readonly ModelContext _context;
|
|
|
|
|
private readonly Encripter _encript = new();
|
2024-07-15 08:01:51 -05:00
|
|
|
|
//private readonly IModel _channel;
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2024-07-15 08:01:51 -05:00
|
|
|
|
public UsuariosController(ModelContext context)
|
2023-02-02 10:50:02 -05:00
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
_context = context;
|
2023-02-02 10:50:02 -05:00
|
|
|
|
}
|
2023-03-21 18:55:21 -05:00
|
|
|
|
//public UsuariosController(ModelContext context, IModel channel)
|
|
|
|
|
//{
|
|
|
|
|
// _context = context;
|
|
|
|
|
// _channel = channel;
|
|
|
|
|
//}
|
|
|
|
|
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
|
|
|
|
[HttpPost("UserBene")]
|
|
|
|
|
public async Task<IActionResult> PostUserBeneficiario(string TX_IDENTIFICACION_AFIL)
|
|
|
|
|
{
|
2023-02-14 18:01:33 -05:00
|
|
|
|
ErrorModel _errorModel = new ErrorModel();
|
2023-02-02 10:50:02 -05:00
|
|
|
|
try
|
|
|
|
|
{
|
2023-02-14 18:01:33 -05:00
|
|
|
|
if (TX_IDENTIFICACION_AFIL == null)
|
2023-02-02 10:50:02 -05:00
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Ingrese un dato");
|
|
|
|
|
return Ok(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
USUARIO user = new USUARIO();
|
|
|
|
|
|
|
|
|
|
user.TX_PKDOC_USUMS = TX_IDENTIFICACION_AFIL;
|
|
|
|
|
user.TX_LOGINNAME_USUMS = TX_IDENTIFICACION_AFIL;
|
|
|
|
|
user.TX_PASSWORD_USUMS = _encript.EncryptPwd(TX_IDENTIFICACION_AFIL);
|
|
|
|
|
|
|
|
|
|
_context.USUARIOSMs.Add(user);
|
|
|
|
|
await _context.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
_errorModel.error = false;
|
|
|
|
|
_errorModel.cuerpo.Add("Usuario creado");
|
|
|
|
|
return Ok(_errorModel);
|
2023-02-14 18:01:33 -05:00
|
|
|
|
|
2023-02-02 10:50:02 -05:00
|
|
|
|
}
|
2023-02-14 18:01:33 -05:00
|
|
|
|
catch (Exception)
|
2023-02-02 10:50:02 -05:00
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Problemas con la base de datos");
|
|
|
|
|
return BadRequest(_errorModel);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpGet("Iniciales")]
|
|
|
|
|
public async Task<IActionResult> GetIniciales(string TX_PKDOC_USUMS)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var consulta = _context.USUARIOSMs.FirstOrDefault(x => x.TX_PKDOC_USUMS == TX_PKDOC_USUMS);
|
|
|
|
|
|
2023-03-21 18:55:21 -05:00
|
|
|
|
var ininame = consulta.TX_PRIMERNOM_USUMS?.ToCharArray();
|
|
|
|
|
var iniape = consulta.TX_PRIMERAPELL_USUMS?.ToCharArray();
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
|
|
|
|
NameObject nombreObjeto = new NameObject()
|
|
|
|
|
{
|
2023-03-21 18:55:21 -05:00
|
|
|
|
iniciales = ininame?[0].ToString() + iniape?[0].ToString(),
|
|
|
|
|
nombre = consulta.TX_PRIMERNOM_USUMS?.ToString() + " " + consulta.TX_PRIMERAPELL_USUMS?.ToString(),
|
2023-02-02 10:50:02 -05:00
|
|
|
|
pk = consulta.NU_PK_USUMS,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return Ok(nombreObjeto);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return BadRequest(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpGet]
|
|
|
|
|
public async Task<IActionResult> GetUsuarios()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
2023-03-09 12:14:29 -05:00
|
|
|
|
List<UsuarioDTO> consulta = new List<UsuarioDTO>();
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
|
|
|
|
consulta = (from dm in _context.USUARIOSMs
|
|
|
|
|
where dm.NU_ESTADO_USUMS >= 0
|
2024-04-10 09:19:51 -05:00
|
|
|
|
orderby dm.NU_PK_USUMS
|
|
|
|
|
select new UsuarioDTO(dm)).ToList();
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
|
|
|
|
return Ok(consulta);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return BadRequest(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-09 12:14:29 -05:00
|
|
|
|
/**
|
|
|
|
|
* identificacion public string TX_PKDOC_USUMS { get; set; } = null!;
|
|
|
|
|
* pk public int? NU_PK_USUMS { get; set; }
|
|
|
|
|
*/
|
|
|
|
|
[HttpGet("/Usuario")]
|
|
|
|
|
public async Task<IActionResult> GetUsuario(int? clave, string? documento)
|
|
|
|
|
{
|
|
|
|
|
ErrorModel _errorModel = new ErrorModel();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (clave == null && documento == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Sin datos de busqueda.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
if (clave != null) {
|
|
|
|
|
var consulta = await _context.USUARIOSMs.FirstOrDefaultAsync(u => u.NU_PK_USUMS == clave);
|
|
|
|
|
if (consulta != null) return Ok(consulta);
|
|
|
|
|
}
|
|
|
|
|
if (documento != null) {
|
|
|
|
|
|
|
|
|
|
var consulta = await _context.USUARIOSMs.FirstOrDefaultAsync(u => u.TX_PKDOC_USUMS == documento);
|
|
|
|
|
if (consulta != null) return Ok(consulta);
|
|
|
|
|
}
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("No se encontró coincidencia.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Problema con la base de datos.");
|
|
|
|
|
return BadRequest(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*[HttpGet("ConsultaFirma")]
|
|
|
|
|
public async Task<IActionResult> GetFirma(string TX_IDENTIFICACION_AFIL)
|
|
|
|
|
{
|
|
|
|
|
ErrorModel _errorModel = new ErrorModel();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
USUARIO usuario = await _context.USUARIOSMs.OrderBy(u => u.NU_PK_USUMS).FirstOrDefaultAsync(u => u.TX_PKDOC_USUMS == TX_IDENTIFICACION_AFIL);
|
|
|
|
|
|
|
|
|
|
if (usuario == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Usuario no existe");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Ok(usuario.CL_FIRMA_USUMS);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return BadRequest(ex);
|
|
|
|
|
}
|
|
|
|
|
}*/
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public async Task<IActionResult> GuardarUsuarios(USUARIO usuario)
|
|
|
|
|
{
|
2023-03-15 15:57:59 -05:00
|
|
|
|
using (var dbContextTransaction = _context.Database.BeginTransaction())
|
2023-02-02 10:50:02 -05:00
|
|
|
|
{
|
2023-03-15 15:57:59 -05:00
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (usuario == null) return Conflict();
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2023-04-05 11:14:35 -05:00
|
|
|
|
string[] login_name = { "" };
|
|
|
|
|
if (usuario.TX_CORREO_USUMS == null && usuario.TX_LOGINNAME_USUMS == null) return Conflict("Indique algún correo.");
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2023-04-05 11:14:35 -05:00
|
|
|
|
if (usuario.TX_CORREO_USUMS != null)
|
|
|
|
|
login_name = usuario.TX_CORREO_USUMS.Split('@');
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2023-04-04 14:52:16 -05:00
|
|
|
|
usuario.TX_LOGINNAME_USUMS ??= login_name[0];
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2023-04-04 14:52:16 -05:00
|
|
|
|
var existe_login = _context.USUARIOSMs.Where(x => x.TX_LOGINNAME_USUMS == usuario.TX_LOGINNAME_USUMS).Count();
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2023-04-05 11:14:35 -05:00
|
|
|
|
if (existe_login > 0) return Conflict($"El login \"{usuario.TX_LOGINNAME_USUMS}\" ya está en uso");
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2023-03-15 15:57:59 -05:00
|
|
|
|
if (usuario.TX_PKDOC_USUMS == null)
|
|
|
|
|
{
|
|
|
|
|
var ult = _context.USUARIOSMs.Max(x => x.NU_PK_USUMS) + 1;
|
|
|
|
|
usuario.TX_PKDOC_USUMS = ult.ToString();
|
|
|
|
|
}
|
2024-04-16 16:04:20 -05:00
|
|
|
|
if(usuario.TX_PASSWORD_USUMS == null)
|
|
|
|
|
{
|
|
|
|
|
usuario.TX_PASSWORD_USUMS = usuario.TX_PKDOC_USUMS;
|
|
|
|
|
}
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2023-03-15 15:57:59 -05:00
|
|
|
|
if (usuario.TX_PASSWORD_USUMS != null)
|
|
|
|
|
{
|
|
|
|
|
usuario.TX_PASSWORD_USUMS = _encript.EncryptPwd(usuario.TX_PASSWORD_USUMS);
|
|
|
|
|
}
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2023-09-21 15:10:11 -05:00
|
|
|
|
if (usuario.TX_UUID_USUMS == null)
|
|
|
|
|
{
|
|
|
|
|
Guid uuid = Guid.NewGuid();
|
|
|
|
|
var UUID = uuid.ToString();
|
|
|
|
|
usuario.TX_UUID_USUMS = UUID;
|
2024-04-10 09:19:51 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// TODO: Validacion agregada mientras se aclara el proceso
|
|
|
|
|
if (usuario.TX_SEDES_USUMS == null || usuario.TX_SEDES_USUMS.Length == 0)
|
|
|
|
|
{
|
|
|
|
|
usuario.TX_SEDES_USUMS = "[0]";
|
|
|
|
|
}
|
2023-09-21 15:10:11 -05:00
|
|
|
|
|
2023-03-15 15:57:59 -05:00
|
|
|
|
_context.USUARIOSMs.Add(usuario);
|
|
|
|
|
await _context.SaveChangesAsync();
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
2023-03-15 15:57:59 -05:00
|
|
|
|
dbContextTransaction.Commit();
|
|
|
|
|
return Ok();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
dbContextTransaction.Rollback();
|
|
|
|
|
return BadRequest(ex.Message);
|
|
|
|
|
}
|
2023-02-02 10:50:02 -05:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpPatch]
|
|
|
|
|
public async Task<IActionResult> EditarUsuarios(USUARIO editado)
|
|
|
|
|
{
|
|
|
|
|
ErrorModel _errorModel = new ErrorModel();
|
|
|
|
|
|
|
|
|
|
using (var dbContextTransaction = _context.Database.BeginTransaction())
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (editado == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Ingrese datos");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-21 15:10:11 -05:00
|
|
|
|
//var existe = _context.USUARIOSMs.FirstOrDefault(x => x.NU_PK_USUMS == editado.NU_PK_USUMS);
|
|
|
|
|
var existe = _context.USUARIOSMs.FirstOrDefault(x => x.TX_UUID_USUMS == editado.TX_UUID_USUMS);
|
2023-02-02 10:50:02 -05:00
|
|
|
|
if (existe == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("El usuario que desea editar no existe");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
existe.TX_PRIMERNOM_USUMS = editado.TX_PRIMERNOM_USUMS;
|
|
|
|
|
existe.TX_SEGUNDONOM_USUMS = editado.TX_SEGUNDONOM_USUMS;
|
|
|
|
|
existe.TX_PRIMERAPELL_USUMS = editado.TX_PRIMERAPELL_USUMS;
|
2024-04-05 10:49:24 -05:00
|
|
|
|
existe.TX_SEGUNDOAPELL_USUMS = editado.TX_SEGUNDOAPELL_USUMS;
|
2023-02-02 10:50:02 -05:00
|
|
|
|
existe.TX_CELULAR_USUMS = editado.TX_CELULAR_USUMS;
|
|
|
|
|
existe.TX_TELEFONO_USUMS = editado.TX_TELEFONO_USUMS;
|
|
|
|
|
existe.TX_CORREO_USUMS = editado.TX_CORREO_USUMS;
|
|
|
|
|
existe.TX_DIRECCION_USUMS = editado.TX_DIRECCION_USUMS;
|
2023-03-09 12:14:29 -05:00
|
|
|
|
existe.BL_PERTENCEIPS_USUMS = editado.BL_PERTENCEIPS_USUMS;
|
|
|
|
|
existe.TX_NOMBRE_PVD = editado.TX_NOMBRE_PVD;
|
|
|
|
|
existe.BL_VIENELDAP_USUMS = editado.BL_VIENELDAP_USUMS;
|
|
|
|
|
existe.NU_GRUPO_USUMS = editado.NU_GRUPO_USUMS;
|
|
|
|
|
existe.NU_CARGO_USUMS = editado.NU_CARGO_USUMS;
|
|
|
|
|
existe.NU_MODALIDADCTT_USUMS = editado.NU_MODALIDADCTT_USUMS;
|
|
|
|
|
existe.TX_SEDES_USUMS = editado.TX_SEDES_USUMS;
|
2023-06-29 09:33:06 -05:00
|
|
|
|
existe.NU_BLOQUEO_USUMS = editado.NU_BLOQUEO_USUMS;
|
2023-10-04 15:16:48 -05:00
|
|
|
|
existe.NU_TIPOUSUARIO_USUMS = editado.NU_TIPOUSUARIO_USUMS;
|
2023-12-29 14:40:42 -05:00
|
|
|
|
existe.TX_REGPROF_MDC = editado.TX_REGPROF_MDC;
|
2024-08-26 11:01:08 -05:00
|
|
|
|
existe.FE_INICIOACTIVACION_USUTMP = editado.FE_INICIOACTIVACION_USUTMP;
|
|
|
|
|
existe.FE_FINACTIVACION_USUTMP = editado.FE_FINACTIVACION_USUTMP;
|
2023-02-02 10:50:02 -05:00
|
|
|
|
|
|
|
|
|
ErrorModel errorPFLxUSUMS = await ActualizarRelaciones(existe.TX_PKDOC_USUMS, editado.TX_PKDOC_USUMS);
|
|
|
|
|
|
|
|
|
|
if (errorPFLxUSUMS.error == true)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.listaErrores.Add(errorPFLxUSUMS.cuerpo[0]);
|
2023-03-09 12:14:29 -05:00
|
|
|
|
//return Conflict(_errorModel);
|
|
|
|
|
throw new Exception();
|
2023-02-02 10:50:02 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_errorModel.listaErrores.Add(errorPFLxUSUMS.cuerpo[0]);
|
|
|
|
|
|
|
|
|
|
existe.NU_TIPODOC_USUMS = editado.NU_TIPODOC_USUMS;
|
|
|
|
|
existe.TX_PKDOC_USUMS = editado.TX_PKDOC_USUMS;
|
|
|
|
|
|
|
|
|
|
_context.USUARIOSMs.Update(existe);
|
|
|
|
|
_context.SaveChanges();
|
|
|
|
|
|
2023-12-06 14:11:53 -05:00
|
|
|
|
/*
|
|
|
|
|
* 1. Perfiles del usuario
|
|
|
|
|
* 2. Buscar el perfil de medico
|
|
|
|
|
* 3. Si existe la relacion
|
|
|
|
|
* 3.1. Se hace la actualizacion de datos
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
List<PERFILPORUSUARIO> perfilesUsuario = this._context.PERFILESPORUSUARIOs.Where(pxu => pxu.TX_UUID_USUMS == existe.TX_UUID_USUMS).ToList();
|
|
|
|
|
|
|
|
|
|
if (perfilesUsuario.Count > 0 && perfilesUsuario.Exists(pxu => pxu.NU_FK_PFL == 1))
|
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
/*using (_channel)
|
2023-12-06 14:11:53 -05:00
|
|
|
|
{
|
|
|
|
|
var medico = new MedicoDto()
|
|
|
|
|
{
|
|
|
|
|
TX_UUID_MDC = existe.TX_UUID_USUMS,
|
|
|
|
|
TX_LUGARESATEN_MDC = existe.TX_SEDES_USUMS
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
string jsonMedico = JsonConvert.SerializeObject(medico);
|
|
|
|
|
|
|
|
|
|
string exchange = MQExchanges.AgendaMedica;
|
|
|
|
|
|
|
|
|
|
// Publish Usuario
|
|
|
|
|
RabbitMQMessages.PublishToMessageQueue(
|
|
|
|
|
channel: _channel,
|
|
|
|
|
exchange: exchange,
|
|
|
|
|
routingKey: $"{exchange}.{MQueues.medico}.patch",
|
|
|
|
|
message: jsonMedico
|
|
|
|
|
);
|
2024-07-15 08:01:51 -05:00
|
|
|
|
}*/
|
2023-12-06 14:11:53 -05:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-02 10:50:02 -05:00
|
|
|
|
_errorModel.error = false;
|
|
|
|
|
_errorModel.cuerpo.Add("Usuario actualizado.");
|
|
|
|
|
dbContextTransaction.Commit();
|
|
|
|
|
return Ok(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Problema con la base de datos.");
|
|
|
|
|
dbContextTransaction.Rollback();
|
|
|
|
|
return BadRequest(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-02-14 18:01:33 -05:00
|
|
|
|
|
2023-02-02 10:50:02 -05:00
|
|
|
|
[HttpPatch("NumeroDocumento")]
|
|
|
|
|
public async Task<IActionResult> EditarNoDocumentoUsuarios(USUARIO editado)
|
|
|
|
|
{
|
|
|
|
|
ErrorModel _errorModel = new ErrorModel();
|
|
|
|
|
|
|
|
|
|
using (var dbContextTransaction = _context.Database.BeginTransaction())
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (editado == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Ingrese datos");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var existe = _context.USUARIOSMs.FirstOrDefault(x => x.NU_PK_USUMS == editado.NU_PK_USUMS);
|
|
|
|
|
|
|
|
|
|
if (existe == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("El usuario que desea editar no existe");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (existe.TX_PKDOC_USUMS != editado.TX_PKDOC_USUMS || existe.NU_TIPODOC_USUMS != editado.NU_TIPODOC_USUMS)
|
|
|
|
|
{
|
|
|
|
|
ErrorModel errorPFLxUSUMS = await ActualizarRelaciones(existe.TX_PKDOC_USUMS, editado.TX_PKDOC_USUMS);
|
|
|
|
|
|
|
|
|
|
if(errorPFLxUSUMS.error == true) {
|
|
|
|
|
_errorModel.listaErrores.Add(errorPFLxUSUMS.cuerpo[0]);
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_errorModel.listaErrores.Add(errorPFLxUSUMS.cuerpo[0]);
|
|
|
|
|
|
|
|
|
|
existe.NU_TIPODOC_USUMS = editado.NU_TIPODOC_USUMS;
|
|
|
|
|
existe.TX_PKDOC_USUMS = editado.TX_PKDOC_USUMS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_context.USUARIOSMs.Update(existe);
|
|
|
|
|
await _context.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
_errorModel.error = false;
|
|
|
|
|
_errorModel.cuerpo.Add("Documento y tipo actualizados.");
|
|
|
|
|
dbContextTransaction.Commit();
|
|
|
|
|
return Ok(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Problema con la base de datos.");
|
|
|
|
|
dbContextTransaction.Rollback();
|
|
|
|
|
return BadRequest(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpPatch("Perfil_usu")]
|
|
|
|
|
public async Task<ErrorModel> ActualizarRelaciones(string TX_PKDOC_USUMS_anterior, string TX_PKDOC_USUMS_nuevo)
|
|
|
|
|
{
|
|
|
|
|
var _errorModel = new ErrorModel();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var existe_any = _context.PERFILESPORUSUARIOs.FirstOrDefault(x => x.TX_FKDOC_USUMS == TX_PKDOC_USUMS_anterior);
|
|
|
|
|
|
|
|
|
|
if (existe_any == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = false;
|
|
|
|
|
_errorModel.cuerpo.Add($"No existen Perfiles para {TX_PKDOC_USUMS_anterior}");
|
|
|
|
|
return _errorModel;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<PERFILPORUSUARIO> existe = _context.PERFILESPORUSUARIOs.Where(x => x.TX_FKDOC_USUMS == TX_PKDOC_USUMS_anterior).ToList();
|
|
|
|
|
|
|
|
|
|
foreach (var r in existe)
|
|
|
|
|
{
|
|
|
|
|
r.TX_FKDOC_USUMS = TX_PKDOC_USUMS_nuevo;
|
|
|
|
|
_context.PERFILESPORUSUARIOs.Update(r);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _context.SaveChangesAsync();
|
|
|
|
|
_errorModel.error = false;
|
|
|
|
|
_errorModel.cuerpo.Add("Perfiles Actualizados.");
|
|
|
|
|
return _errorModel;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Problema con la base de datos PERFILES POR USUARIO.");
|
|
|
|
|
return _errorModel;
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-02-14 18:01:33 -05:00
|
|
|
|
|
|
|
|
|
[HttpPatch("Firma")]
|
|
|
|
|
public async Task<IActionResult> EditarFirma(USUARIO inputData)
|
|
|
|
|
{
|
|
|
|
|
ErrorModel _errorModel = new();
|
|
|
|
|
using (var dbContextTransaction = _context.Database.BeginTransaction())
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
#region Validaciones
|
|
|
|
|
|
|
|
|
|
if ((inputData == null || inputData.CL_FIRMA_USUMS == null) ||
|
|
|
|
|
(String.IsNullOrEmpty(inputData.CL_FIRMA_USUMS.Trim()) ||
|
|
|
|
|
String.IsNullOrWhiteSpace(inputData.CL_FIRMA_USUMS.Trim())))
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("No se recibió la información requerida.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
// Busco el usuario
|
2023-09-21 15:10:11 -05:00
|
|
|
|
var found = _context.USUARIOSMs.FirstOrDefault(x => x.TX_UUID_USUMS == inputData.TX_UUID_USUMS);
|
2023-02-14 18:01:33 -05:00
|
|
|
|
|
|
|
|
|
if (found == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("El usuario seleccionado no existe.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
found.CL_FIRMA_USUMS = inputData.CL_FIRMA_USUMS;
|
|
|
|
|
|
|
|
|
|
_context.USUARIOSMs.Update(found);
|
|
|
|
|
await _context.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
await dbContextTransaction.CommitAsync();
|
|
|
|
|
|
|
|
|
|
_errorModel.cuerpo.Add("Firma actualizada correctamente.");
|
|
|
|
|
return Ok(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
dbContextTransaction.Rollback();
|
|
|
|
|
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Ocurrió un error en la base de datos.");
|
|
|
|
|
_errorModel.cuerpo.Add("Por favor intente de nuevo más tarde");
|
|
|
|
|
|
|
|
|
|
//_errorModel.debugInfo(e.InnerException.ToString());
|
|
|
|
|
|
|
|
|
|
return BadRequest(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[HttpGet("Firma")]
|
|
|
|
|
public async Task<IActionResult> Get(int PK)
|
|
|
|
|
{
|
|
|
|
|
ErrorModel _errorModel = new ErrorModel();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var result = await _context.USUARIOSMs.FirstOrDefaultAsync(dt => dt.NU_PK_USUMS == PK);
|
|
|
|
|
|
|
|
|
|
if(result == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Usuario no encontrado");
|
|
|
|
|
return BadRequest(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (String.IsNullOrEmpty(result.CL_FIRMA_USUMS) ||
|
|
|
|
|
String.IsNullOrWhiteSpace(result.CL_FIRMA_USUMS.Trim()))
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("El usuario no tiene firma.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return Ok(result.CL_FIRMA_USUMS);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Problema con la base de datos.");
|
|
|
|
|
|
|
|
|
|
return BadRequest(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-11 06:51:05 -05:00
|
|
|
|
[HttpPost("UsuarioPerfiles")]
|
|
|
|
|
public async Task<IActionResult> PostUsuarioPerfiles(UsuarioPerfilesDTO nuevo)
|
|
|
|
|
{
|
|
|
|
|
ErrorModel _errorModel = new ErrorModel();
|
|
|
|
|
using (var transaccion = _context.Database.BeginTransaction())
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (nuevo == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Sin datos a guardar.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
transaccion.CreateSavepoint("InicioCreacionUsuarioPerfiles");
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Sin usuario a guardar.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario.TX_CORREO_USUMS == null && nuevo.usuario.TX_LOGINNAME_USUMS == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Indique algún correo.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario.TX_UUID_USUMS == null)
|
|
|
|
|
{
|
|
|
|
|
Guid uuid = Guid.NewGuid();
|
|
|
|
|
var UUID = uuid.ToString();
|
|
|
|
|
nuevo.usuario.TX_UUID_USUMS = UUID;
|
|
|
|
|
|
2024-04-16 16:04:20 -05:00
|
|
|
|
if (nuevo.usuario.TX_PASSWORD_USUMS == null)
|
|
|
|
|
{
|
|
|
|
|
nuevo.usuario.TX_PASSWORD_USUMS = nuevo.usuario.TX_PKDOC_USUMS;
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-11 06:51:05 -05:00
|
|
|
|
if (nuevo.usuario.TX_PASSWORD_USUMS != null)
|
|
|
|
|
{
|
|
|
|
|
nuevo.usuario.TX_PASSWORD_USUMS = _encript.EncryptPwd(nuevo.usuario.TX_PASSWORD_USUMS);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario.TX_SEDES_USUMS == null || nuevo.usuario.TX_SEDES_USUMS.Length == 0)
|
|
|
|
|
{
|
|
|
|
|
nuevo.usuario.TX_SEDES_USUMS = "[0]";
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-26 11:01:08 -05:00
|
|
|
|
nuevo.usuario.NU_INICIO_PRIMERAVEZ_USUMS = 0;
|
|
|
|
|
|
2024-04-11 06:51:05 -05:00
|
|
|
|
_context.USUARIOSMs.Add(nuevo.usuario);
|
|
|
|
|
await _context.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
USUARIO? existe = _context.USUARIOSMs.FirstOrDefault(usu => usu.TX_UUID_USUMS == nuevo.usuario.TX_UUID_USUMS);
|
|
|
|
|
if (existe == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Sin usuario no existe.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
existe.NU_TIPODOC_USUMS = nuevo.usuario.NU_TIPODOC_USUMS;
|
|
|
|
|
existe.TX_PRIMERNOM_USUMS = nuevo.usuario.TX_PRIMERNOM_USUMS;
|
|
|
|
|
existe.TX_SEGUNDONOM_USUMS = nuevo.usuario.TX_SEGUNDONOM_USUMS;
|
|
|
|
|
existe.TX_PRIMERAPELL_USUMS = nuevo.usuario.TX_PRIMERAPELL_USUMS;
|
|
|
|
|
existe.TX_SEGUNDOAPELL_USUMS = nuevo.usuario.TX_SEGUNDOAPELL_USUMS;
|
|
|
|
|
existe.TX_CELULAR_USUMS = nuevo.usuario.TX_CELULAR_USUMS;
|
|
|
|
|
existe.TX_TELEFONO_USUMS = nuevo.usuario.TX_TELEFONO_USUMS;
|
|
|
|
|
existe.TX_CORREO_USUMS = nuevo.usuario.TX_CORREO_USUMS;
|
|
|
|
|
existe.TX_DIRECCION_USUMS = nuevo.usuario.TX_DIRECCION_USUMS;
|
|
|
|
|
existe.BL_PERTENCEIPS_USUMS = nuevo.usuario.BL_PERTENCEIPS_USUMS;
|
|
|
|
|
existe.TX_NOMBRE_PVD = nuevo.usuario.TX_NOMBRE_PVD;
|
|
|
|
|
existe.BL_VIENELDAP_USUMS = nuevo.usuario.BL_VIENELDAP_USUMS;
|
|
|
|
|
existe.NU_GRUPO_USUMS = nuevo.usuario.NU_GRUPO_USUMS;
|
|
|
|
|
existe.NU_CARGO_USUMS = nuevo.usuario.NU_CARGO_USUMS;
|
|
|
|
|
existe.NU_MODALIDADCTT_USUMS = nuevo.usuario.NU_MODALIDADCTT_USUMS;
|
|
|
|
|
existe.TX_SEDES_USUMS = nuevo.usuario.TX_SEDES_USUMS;
|
|
|
|
|
existe.NU_BLOQUEO_USUMS = nuevo.usuario.NU_BLOQUEO_USUMS;
|
|
|
|
|
existe.NU_TIPOUSUARIO_USUMS = nuevo.usuario.NU_TIPOUSUARIO_USUMS;
|
|
|
|
|
existe.TX_REGPROF_MDC = nuevo.usuario.TX_REGPROF_MDC;
|
2024-08-26 11:01:08 -05:00
|
|
|
|
existe.FE_INICIOACTIVACION_USUTMP = nuevo.usuario.FE_INICIOACTIVACION_USUTMP;
|
|
|
|
|
existe.FE_FINACTIVACION_USUTMP = nuevo.usuario.FE_FINACTIVACION_USUTMP;
|
2024-04-11 06:51:05 -05:00
|
|
|
|
|
2024-04-16 16:14:53 -05:00
|
|
|
|
if (existe.TX_PASSWORD_USUMS == null || existe.TX_PASSWORD_USUMS == "")
|
|
|
|
|
{
|
|
|
|
|
existe.TX_PASSWORD_USUMS = _encript.EncryptPwd(nuevo.usuario.TX_PKDOC_USUMS!);
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-11 06:51:05 -05:00
|
|
|
|
_context.USUARIOSMs.Update(existe);
|
2024-07-15 08:01:51 -05:00
|
|
|
|
await _context.SaveChangesAsync();
|
2024-04-11 06:51:05 -05:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
USUARIO? creado = await _context.USUARIOSMs.FirstOrDefaultAsync(us => us.TX_UUID_USUMS == nuevo.usuario.TX_UUID_USUMS);
|
|
|
|
|
|
2024-06-15 12:23:04 -05:00
|
|
|
|
if (nuevo.perfiles != null && creado!=null)
|
2024-04-11 06:51:05 -05:00
|
|
|
|
{
|
|
|
|
|
// Se cambia a estado 0 todos los perfiles por usuario existentes
|
2024-06-15 12:23:04 -05:00
|
|
|
|
var existe_plfxusu = _context.PERFILESPORUSUARIOs.Where(x => x.BL_ESTADO_PFLXUSU == 1 && x.TX_UUID_USUMS == creado.TX_UUID_USUMS).ToList();
|
2024-04-11 06:51:05 -05:00
|
|
|
|
|
2024-06-15 12:23:04 -05:00
|
|
|
|
foreach (var pu in existe_plfxusu)
|
2024-04-11 06:51:05 -05:00
|
|
|
|
{
|
2024-06-15 12:23:04 -05:00
|
|
|
|
pu.BL_ESTADO_PFLXUSU = 0;
|
2024-04-11 06:51:05 -05:00
|
|
|
|
}
|
2024-04-29 09:51:35 -05:00
|
|
|
|
_context.PERFILESPORUSUARIOs.UpdateRange(existe_plfxusu);
|
2024-07-15 08:01:51 -05:00
|
|
|
|
await _context.SaveChangesAsync();
|
2024-04-11 06:51:05 -05:00
|
|
|
|
|
2024-07-15 08:01:51 -05:00
|
|
|
|
foreach (PERFILPORUSUARIO pxu in nuevo.perfiles)
|
2024-04-11 06:51:05 -05:00
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
if (pxu != null)
|
2024-04-11 06:51:05 -05:00
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
PERFILPORUSUARIO? existe = _context.PERFILESPORUSUARIOs.FirstOrDefault(pu => pu.TX_UUID_PFL == pxu.TX_UUID_PFL && pu.TX_UUID_USUMS == pxu.TX_UUID_USUMS);
|
|
|
|
|
if (existe != null)
|
2024-04-11 06:51:05 -05:00
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
existe.BL_ESTADO_PFLXUSU = 1;
|
|
|
|
|
_context.Update(existe);
|
|
|
|
|
await _context.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
else
|
2024-06-15 12:23:04 -05:00
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
pxu.BL_ESTADO_PFLXUSU = 1;
|
|
|
|
|
pxu.TX_UUID_USUMS = nuevo.usuario.TX_UUID_USUMS;
|
|
|
|
|
_context.PERFILESPORUSUARIOs.Add(pxu);
|
|
|
|
|
await _context.SaveChangesAsync();
|
2024-06-15 12:23:04 -05:00
|
|
|
|
|
|
|
|
|
}
|
2024-04-11 06:51:05 -05:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-15 08:01:51 -05:00
|
|
|
|
/*List<PERFILPORUSUARIO> perUsuEliminiado = _context.PERFILESPORUSUARIOs.Where(pu => pu.TX_UUID_USUMS == creado.TX_UUID_USUMS && pu.BL_ESTADO_PFLXUSU == 0).ToList();
|
|
|
|
|
_context.PERFILESPORUSUARIOs.RemoveRange(perUsuEliminiado);
|
|
|
|
|
await _context.SaveChangesAsync();*/
|
2024-04-11 06:51:05 -05:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
transaccion.Commit();
|
|
|
|
|
|
|
|
|
|
_errorModel.error = false;
|
|
|
|
|
_errorModel.cuerpo.Add("Usuario creado correctamente");
|
|
|
|
|
return Ok(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
transaccion.RollbackToSavepoint("InicioCreacionUsuarioPerfiles");
|
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-12 17:39:56 -05:00
|
|
|
|
[HttpPost("UsuarioPerfilesRetorno")]
|
|
|
|
|
public async Task<IActionResult> PostUsuarioPerfilesRetorno(UsuarioPerfilesDTO nuevo)
|
|
|
|
|
{
|
|
|
|
|
ErrorModel _errorModel = new ErrorModel();
|
|
|
|
|
using (var transaccion = _context.Database.BeginTransaction())
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (nuevo == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Sin datos a guardar.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
transaccion.CreateSavepoint("InicioCreacionUsuarioPerfiles");
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Sin usuario a guardar.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario.TX_CORREO_USUMS == null && nuevo.usuario.TX_LOGINNAME_USUMS == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Indique algún correo.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario.TX_UUID_USUMS == null)
|
|
|
|
|
{
|
2024-07-15 14:36:50 -05:00
|
|
|
|
|
|
|
|
|
if (nuevo.usuario.TX_CORREO_USUMS != null )
|
|
|
|
|
{
|
|
|
|
|
USUARIO? existe = _context.USUARIOSMs.FirstOrDefault(usu => usu.TX_CORREO_USUMS == nuevo.usuario.TX_CORREO_USUMS);
|
|
|
|
|
if (existe != null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add($"Usuario con correo {existe.TX_CORREO_USUMS} ya existe.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-12 17:39:56 -05:00
|
|
|
|
Guid uuid = Guid.NewGuid();
|
|
|
|
|
var UUID = uuid.ToString();
|
|
|
|
|
nuevo.usuario.TX_UUID_USUMS = UUID;
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario.TX_PASSWORD_USUMS == null)
|
|
|
|
|
{
|
|
|
|
|
nuevo.usuario.TX_PASSWORD_USUMS = nuevo.usuario.TX_PKDOC_USUMS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario.TX_PASSWORD_USUMS != null)
|
|
|
|
|
{
|
|
|
|
|
nuevo.usuario.TX_PASSWORD_USUMS = _encript.EncryptPwd(nuevo.usuario.TX_PASSWORD_USUMS);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (nuevo.usuario.TX_SEDES_USUMS == null || nuevo.usuario.TX_SEDES_USUMS.Length == 0)
|
|
|
|
|
{
|
|
|
|
|
nuevo.usuario.TX_SEDES_USUMS = "[0]";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_context.USUARIOSMs.Add(nuevo.usuario);
|
|
|
|
|
await _context.SaveChangesAsync();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
USUARIO? existe = _context.USUARIOSMs.FirstOrDefault(usu => usu.TX_UUID_USUMS == nuevo.usuario.TX_UUID_USUMS);
|
|
|
|
|
if (existe == null)
|
|
|
|
|
{
|
|
|
|
|
_errorModel.error = true;
|
|
|
|
|
_errorModel.cuerpo.Add("Sin usuario no existe.");
|
|
|
|
|
return Conflict(_errorModel);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
existe.NU_TIPODOC_USUMS = nuevo.usuario.NU_TIPODOC_USUMS;
|
|
|
|
|
existe.TX_PRIMERNOM_USUMS = nuevo.usuario.TX_PRIMERNOM_USUMS;
|
|
|
|
|
existe.TX_SEGUNDONOM_USUMS = nuevo.usuario.TX_SEGUNDONOM_USUMS;
|
|
|
|
|
existe.TX_PRIMERAPELL_USUMS = nuevo.usuario.TX_PRIMERAPELL_USUMS;
|
|
|
|
|
existe.TX_SEGUNDOAPELL_USUMS = nuevo.usuario.TX_SEGUNDOAPELL_USUMS;
|
|
|
|
|
existe.TX_CELULAR_USUMS = nuevo.usuario.TX_CELULAR_USUMS;
|
|
|
|
|
existe.TX_TELEFONO_USUMS = nuevo.usuario.TX_TELEFONO_USUMS;
|
|
|
|
|
existe.TX_CORREO_USUMS = nuevo.usuario.TX_CORREO_USUMS;
|
|
|
|
|
existe.TX_DIRECCION_USUMS = nuevo.usuario.TX_DIRECCION_USUMS;
|
|
|
|
|
existe.BL_PERTENCEIPS_USUMS = nuevo.usuario.BL_PERTENCEIPS_USUMS;
|
|
|
|
|
existe.TX_NOMBRE_PVD = nuevo.usuario.TX_NOMBRE_PVD;
|
|
|
|
|
existe.BL_VIENELDAP_USUMS = nuevo.usuario.BL_VIENELDAP_USUMS;
|
|
|
|
|
existe.NU_GRUPO_USUMS = nuevo.usuario.NU_GRUPO_USUMS;
|
|
|
|
|
existe.NU_CARGO_USUMS = nuevo.usuario.NU_CARGO_USUMS;
|
|
|
|
|
existe.NU_MODALIDADCTT_USUMS = nuevo.usuario.NU_MODALIDADCTT_USUMS;
|
|
|
|
|
existe.TX_SEDES_USUMS = nuevo.usuario.TX_SEDES_USUMS;
|
|
|
|
|
existe.NU_BLOQUEO_USUMS = nuevo.usuario.NU_BLOQUEO_USUMS;
|
|
|
|
|
existe.NU_TIPOUSUARIO_USUMS = nuevo.usuario.NU_TIPOUSUARIO_USUMS;
|
|
|
|
|
existe.TX_REGPROF_MDC = nuevo.usuario.TX_REGPROF_MDC;
|
2024-08-26 11:01:08 -05:00
|
|
|
|
existe.FE_INICIOACTIVACION_USUTMP = nuevo.usuario.FE_INICIOACTIVACION_USUTMP;
|
|
|
|
|
existe.FE_FINACTIVACION_USUTMP = nuevo.usuario.FE_FINACTIVACION_USUTMP;
|
2024-07-12 17:39:56 -05:00
|
|
|
|
|
|
|
|
|
if (existe.TX_PASSWORD_USUMS == null || existe.TX_PASSWORD_USUMS == "")
|
|
|
|
|
{
|
|
|
|
|
existe.TX_PASSWORD_USUMS = _encript.EncryptPwd(nuevo.usuario.TX_PKDOC_USUMS!);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
_context.USUARIOSMs.Update(existe);
|
|
|
|
|
_context.SaveChanges();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
USUARIO? creado = await _context.USUARIOSMs.FirstOrDefaultAsync(us => us.TX_UUID_USUMS == nuevo.usuario.TX_UUID_USUMS);
|
|
|
|
|
|
|
|
|
|
if (nuevo.perfiles != null && creado!=null)
|
|
|
|
|
{
|
|
|
|
|
// Se cambia a estado 0 todos los perfiles por usuario existentes
|
|
|
|
|
var existe_plfxusu = _context.PERFILESPORUSUARIOs.Where(x => x.BL_ESTADO_PFLXUSU == 1 && x.TX_UUID_USUMS == creado.TX_UUID_USUMS).ToList();
|
|
|
|
|
|
|
|
|
|
foreach (var pu in existe_plfxusu)
|
|
|
|
|
{
|
|
|
|
|
pu.BL_ESTADO_PFLXUSU = 0;
|
|
|
|
|
}
|
|
|
|
|
_context.PERFILESPORUSUARIOs.UpdateRange(existe_plfxusu);
|
2024-07-15 08:01:51 -05:00
|
|
|
|
await _context.SaveChangesAsync();
|
2024-07-12 17:39:56 -05:00
|
|
|
|
|
|
|
|
|
foreach (var pxu in nuevo.perfiles)
|
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
if (pxu != null)
|
2024-07-12 17:39:56 -05:00
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
PERFILPORUSUARIO? existe = _context.PERFILESPORUSUARIOs.FirstOrDefault(pu => pu.TX_UUID_PFL == pxu.TX_UUID_PFL && pu.TX_UUID_USUMS == pxu.TX_UUID_USUMS);
|
|
|
|
|
|
|
|
|
|
if (existe != null)
|
2024-07-12 17:39:56 -05:00
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
//Si existe activamos estado 1 del perfil
|
|
|
|
|
existe.BL_ESTADO_PFLXUSU = 1;
|
|
|
|
|
_context.Update(existe);
|
|
|
|
|
await _context.SaveChangesAsync();
|
|
|
|
|
}
|
|
|
|
|
else
|
2024-07-12 17:39:56 -05:00
|
|
|
|
{
|
2024-07-15 08:01:51 -05:00
|
|
|
|
pxu.BL_ESTADO_PFLXUSU = 1;
|
|
|
|
|
pxu.TX_UUID_USUMS = nuevo.usuario.TX_UUID_USUMS;
|
|
|
|
|
_context.PERFILESPORUSUARIOs.Add(pxu);
|
|
|
|
|
await _context.SaveChangesAsync();
|
2024-07-12 17:39:56 -05:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-07-15 08:01:51 -05:00
|
|
|
|
/*List<PERFILPORUSUARIO> perUsuEliminiado = _context.PERFILESPORUSUARIOs.Where(pu => pu.TX_UUID_USUMS == creado.TX_UUID_USUMS && pu.BL_ESTADO_PFLXUSU == 0).ToList();
|
|
|
|
|
_context.PERFILESPORUSUARIOs.RemoveRange(perUsuEliminiado);
|
|
|
|
|
await _context.SaveChangesAsync();*/
|
2024-07-12 17:39:56 -05:00
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
transaccion.Commit();
|
|
|
|
|
|
|
|
|
|
_errorModel.error = false;
|
|
|
|
|
_errorModel.cuerpo.Add("Usuario creado correctamente");
|
|
|
|
|
return Ok(creado);
|
|
|
|
|
}
|
|
|
|
|
catch (Exception e)
|
|
|
|
|
{
|
|
|
|
|
transaccion.RollbackToSavepoint("InicioCreacionUsuarioPerfiles");
|
|
|
|
|
return BadRequest(e.Message);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-02 10:50:02 -05:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|