diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinortCatalogos.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinortCatalogos.cs index 00350bf4c..6ab6039ba 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinortCatalogos.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinortCatalogos.cs @@ -82,6 +82,9 @@ namespace AYA.SlnSinort.WCF #endregion #region RolesUsuario + [OperationContract] + List ValidarRolesUsuario(CatalogosPostJSON model); + [OperationContract] Usuario BuscarUsuario(CatalogosPostJSON model); @@ -91,7 +94,8 @@ namespace AYA.SlnSinort.WCF [OperationContract] RolesUsuarioJSON InsertarActualizarRolesUsuario(RolesUsuarioJSON model); - + [OperationContract] + RolesUsuarioJSON EliminarRolesUsuario(RolesUsuarioJSON model); #endregion diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/SinortCatalogos.svc.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/SinortCatalogos.svc.cs index 148fd1e25..dac1477e2 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/SinortCatalogos.svc.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/SinortCatalogos.svc.cs @@ -331,6 +331,21 @@ namespace AYA.SlnSinort.WCF #region RolesUsuarios + + public List ValidarRolesUsuario(CatalogosPostJSON model) + { + List respuesta = null; + try + { + respuesta = new UsuarioDAL().ValidarRolesUsuario(model); + } + catch (Exception ex) + { + log.Error(ex); + } + return respuesta; + } + public Usuario BuscarUsuario(CatalogosPostJSON model) { Usuario respuesta = null; @@ -379,6 +394,24 @@ namespace AYA.SlnSinort.WCF return model; } + public RolesUsuarioJSON EliminarRolesUsuario(RolesUsuarioJSON model) + { + var usuarioDAL = new UsuarioDAL(); + try + { + foreach (var rolUsuario in model.ListaRolesUsuarios) + usuarioDAL.EliminarRolesUsuario(rolUsuario); + + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; + } + catch (Exception ex) + { + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + throw; + } + + return model; + } #endregion #region WCFAYA diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Aplicacion.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Aplicacion.js index cc436251e..2aaf3f87b 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Aplicacion.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Aplicacion.js @@ -197,7 +197,30 @@ this.ActualizarItem = function () { if (!confirm("Se guardarán los cambios.\n ¿Desea continuar?")) { return; } + + TableItems = $('#TableItems').DataTable(); + var repetido = false; + var data = TableItems + .rows() + .data(); + + $.each(data, function (key, item) { + + if (item[2] == $("#txtDescripcion").val()) { + repetido = true + return false; + } + + }); + + if (repetido == true) { + toastr.warning('Ya existe una aplicación con el mismo título', Message_Warning); + return; + } + + + Aplicacion = { IdAplicacion: $('#hiddenId').val(), @@ -225,6 +248,24 @@ this.InsertarItem = function () { TableItems = $('#TableItems').DataTable(); + var repetido = false; + var data = TableItems + .rows() + .data(); + + $.each(data, function (key, item) { + + if (item[2] == $("#txtDescripcion").val()) { + repetido = true + return false; + } + + }); + + if (repetido == true) { + toastr.warning('Ya existe una aplicación con el mismo título', Message_Warning); + return; + } Aplicacion = { Descripcion: $("#txtDescripcion").val(), diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Rol.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Rol.js index 131750745..9f685f453 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Rol.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/Rol.js @@ -2,7 +2,7 @@ var DataCatalogo; var id_column = 1; var model = {}; - +var idRoles; //#region READY @@ -45,7 +45,7 @@ this.getDataModel = function () { $("#btnAgregarUsuario").unbind("click"); $("#btnAgregarUsuario").click(function () { - AgregarUsuario(); + ValidarRolesUsuario(); }); $("#btnBuscarOpcion").unbind("click"); @@ -63,7 +63,7 @@ this.getDataModel = function () { $('#GridRolesUsuarios').TableInit(0, false, true, true, false, null, null); ObtenerRoles(); CargarUsuariosSistema(); - CargarPantallasSistema(); + @@ -195,7 +195,26 @@ this.ActualizarItem = function () { if (!confirm("Se guardarán los cambios.\n ¿Desea continuar?")) { return; } + TableItems = $('#TableItems').DataTable(); + var repetido = false; + var data = TableItems + .rows() + .data(); + + $.each(data, function (key, item) { + + if (item[2] == $("#txtDescripcion").val()) { + repetido = true + return false; + } + + }); + + if (repetido == true) { + toastr.warning('Ya existe un rol con la misma descripción', Message_Warning); + return; + } Rol = { IdRol: $('#hiddenId').val(), @@ -221,6 +240,24 @@ this.InsertarItem = function () { TableItems = $('#TableItems').DataTable(); + var repetido = false; + var data = TableItems + .rows() + .data(); + + $.each(data, function (key, item) { + + if (item[2] == $("#txtDescripcion").val()) { + repetido = true + return false; + } + + }); + + if (repetido == true) { + toastr.warning('Ya existe un rol con la misma descripción', Message_Warning); + return; + } Rol = { Descripcion: $("#txtDescripcion").val(), @@ -254,8 +291,11 @@ this.LimpiarControles = function () { //Asignar opciones por rol this.AbrirRolesPantallas = function (id) { if (ValidarPermisos('Asignar permisos por rol').length > 0) { + + idRoles = id; $("#modalRolesOpciones").modal('show'); CargarPantallas(id); + } else { toastr.warning('No tiene permisos para ejecutar esta opción', Message_Warning); @@ -394,10 +434,15 @@ this.HabilitarOpcion = function (id, value) { } -this.CargarPantallasSistema = function (filtro) { +this.CargarPantallasSistema = function () { var uri = CatalogosWCF + '/api/ObtenerPantallas'; - AjaxPostData(uri, null, false, false, CargarGridPantallas, null, null); + + model = { + codigo: idRoles + }; + + AjaxPostData(uri, model, false, false, CargarGridPantallas, null, null); } @@ -424,8 +469,9 @@ this.CargarGridPantallas = function (data) { this.BuscarPantalla = function () { + CargarPantallasSistema(); - if ($.fn.DataTable.isDataTable('#tableOpciones')) { + if ($.fn.DataTable.isDataTable('#tableOpciones')) { LoadMessage(); $('#tableOpciones').DataTable().search('').draw(); @@ -559,14 +605,17 @@ this.GuardarRolesUsuarios = function () { .rows() .data(); + var estadoRol; $.each(data, function (key, item) { + estadoRol = item[4].indexOf("Deshabilitar") == -1 ? false : true; + RolesUsuarios = { IdRolesUsuario: item[1], IdRol: IdRoles, UsuarioSistema: item[2], - Estado: true + Estado: estadoRol } ArrayRolesUsuarios.push(RolesUsuarios); @@ -619,6 +668,33 @@ this.HabilitarUsuario = function (id, value) { } +this.EliminarUsuario = function (id) { + + var msg = '¿Está seguro que desea eliminar el usuario?'; + + if (!confirm(msg)) return; + + var ArrayRolesUsuarios = []; + + RolesUsuarios = { + IdRolesUsuario: id, + + } + ArrayRolesUsuarios.push(RolesUsuarios); + + var model = { + ListaRolesUsuarios: ArrayRolesUsuarios + + } + + var uri = CatalogosWCF + '/api/EliminarRolesUsuario'; + AjaxPostData(uri, model, true, null, null, null, null); + CargarUsuarios($('#hiddenIdRol').val()); + ENDREQUEST(); + +} + + this.CargarUsuariosSistema = function (filtro) { var uri = CatalogosWCF + '/api/ObtenerUsuario'; @@ -651,9 +727,12 @@ this.CargarGridUsuarios = function (data) { this.BuscarUsuario = function () { SelectedCatalog = 'Usuarios'; + if ($.fn.DataTable.isDataTable('#tableUsuarios')) { LoadMessage(); + var table = $('#tableUsuarios').DataTable(); + $('#tableUsuarios').DataTable().search('').draw(); $('#modalUsuario').modal('show'); ENDREQUEST(); @@ -661,10 +740,32 @@ this.BuscarUsuario = function () { } } -this.AgregarUsuario = function () { +this.ValidarRolesUsuario = function (id) { + if ($("#txtUsuario").val() == '') { + toastr.warning("Debe seleccionar un usuario", Message_Warning); + return; + } + + var uri = CatalogosWCF + '/api/ValidarRolesUsuario'; + model = { + codigo: $("#hiddenUsuario").val() + }; + + AjaxPostData(uri, model, false, false, AgregarUsuario, null, null); + +} + + +this.AgregarUsuario = function (data) { + ENDREQUEST(); if (!confirm("¿Desea agregar un nuevo usuario?")) return; - + + if (data.length > 0) { + toastr.warning("El usuario seleccionado ya tiene un rol asignado", Message_Warning); + return; + } + var GridRolesUsuarios = $('#GridRolesUsuarios').DataTable(); var option = $("#ucbtnRemoverParticipante").html(); var stateIcon = $("#ucItemsIcon").html(); diff --git a/AYA.SlnSynor/AYA.SlnSynor/Views/Catalogos/Rol.cshtml b/AYA.SlnSynor/AYA.SlnSynor/Views/Catalogos/Rol.cshtml index db84cbf73..8913f0209 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Views/Catalogos/Rol.cshtml +++ b/AYA.SlnSynor/AYA.SlnSynor/Views/Catalogos/Rol.cshtml @@ -116,41 +116,10 @@ -@**@ @*---------------------Roles Opciones---------------------------------------------------------*@