From 4ac501d5cfb98f622a8dbee9588db1a962b4b545 Mon Sep 17 00:00:00 2001 From: jmoya Date: Mon, 6 Aug 2018 22:11:39 +0000 Subject: [PATCH] git-tfs-id: [http://192.168.1.10:8080/tfs/AyA]$/SINORT;C392 --- AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs | 3 + AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs | 23 ++- .../MisEncuestas.js | 180 ++++++++++++++---- .../ResponderEncuesta.js | 39 ++-- .../MisEncuestas.cshtml | 41 +++- .../Sinort/EncuestaDAL.cs | 71 ++++++- .../AYA.SlnSynorModel/Entidades/Json.cs | 2 + 7 files changed, 293 insertions(+), 66 deletions(-) diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs index 175e600b5..8d333b4d4 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs @@ -147,6 +147,9 @@ namespace AYA.SlnSinort.WCF [OperationContract] EncuestaJSON GuardarUsuariosEncuesta(EncuestaJSON model); + + [OperationContract] + EncuestaJSON ObtenerUsuariosEncuestas(EncuestaJSON model); #endregion } diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs index eb646c5b4..259433355 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs @@ -1071,6 +1071,22 @@ namespace AYA.SlnSinort.WCF } return registros; } + public EncuestaJSON ObtenerUsuariosEncuestas(EncuestaJSON model) + { + + try + { + model = new EncuestaDAL().ObtenerUsuariosEncuestas(model); + + } + catch (Exception ex) + { + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + log.Error(ex); + } + return model; + } + public EncuestaJSON ObtenerDetalleEncuesta(EncuestaJSON model) { @@ -1210,6 +1226,8 @@ namespace AYA.SlnSinort.WCF { try { + var EncuestaDAL = new EncuestaDAL(); + if (model == null || model.ListaRespuestas == null) { @@ -1218,7 +1236,10 @@ namespace AYA.SlnSinort.WCF return model; } - model = new EncuestaDAL().GuardarRespuestaEncuesta(model); + model = EncuestaDAL.GuardarRespuestaEncuesta(model); + + if (model.CodigoRespuesta == EnumTipoCodigoRespuesta.EXITOSO) + EncuestaDAL.GuardarUsuariosEncuesta(model); } catch (Exception ex) diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/MisEncuestas.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/MisEncuestas.js index 3219b6c40..875cf45b4 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/MisEncuestas.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/MisEncuestas.js @@ -1,16 +1,35 @@ var Item = {}; var data; +var esSu = false; +var IdEncabezadoEncuesta; +var Estado; jQuery(document).ready(function () { + + ObtenerRolPantalla(); CargarEncuestas(); + getDataModel(); }); - +this.getDataModel = function () +{ + $('#tableEncuestas').TableInit(0, false, true, true, false, null, null); + $('#tableEncuestas').DataTable().column(0).visible(false); + $('#tableEncuestas').DataTable().column(1).visible(false); +} this.CargarEncuestas = function () { var uri = SinortWCF + '/api/ObtenerEncabezadoEncuesta'; - var model = { - UsuarioSistema: UsuarioSistema + if (esSu) + { + var model = { + UsuarioSistema: null + } + } + else{ + var model = { + UsuarioSistema: UsuarioSistema + } } AjaxPostData(uri, model, false, false, CargarTablaEncuestas, null, null); } @@ -18,51 +37,103 @@ this.CargarEncuestas = function () { this.CargarTablaEncuestas = function (data) { if (data != null && data.UsuariosEncuestas != null) { + Encuesta = data.UsuariosEncuestas; - var Seleccionar = $("#ucbtnRespuesta").html(); - - if (data.UsuariosEncuestas[0].Estado == true) { - var descripcion; - descripcion = $("#ucDesc").html(); - descripcion = replaceAll('[$DESCRIPCION]','Ver Respuestas', descripcion); - $('#btnseleccionar').empty(); - $('#btnseleccionar').append(descripcion); - } - else { - var descripcion; - descripcion = $("#ucDesc").html(); + var TableItems = $('#tableEncuestas').DataTable(); - descripcion = replaceAll('[$DESCRIPCION]', 'Responder', descripcion); - $('#btnseleccionar').empty(); - $('#btnseleccionar').append(descripcion); - } + $.each(Encuesta, function (key, item) { - var columnDefinition = [ - { "data": 'IdEncabezadoEncuesta', "visible": false }, - { "data": "EncabezadoEncuesta.Descripcion" }, - { "data": null, className: "center", defaultContent: Seleccionar } - ]; - - $('#tableEncuestas').DataTable({ + var Seleccionar = $("#ucbtnRespuesta").html(); - initComplete: function () { - - $('#tableEncuestas').TableInit(1, false, true, true, true, columnDefinition, Encuesta); + if (item.Estado == false) { + Seleccionar = replaceAll('[$DESCRIPCION]', 'Responder', Seleccionar); } + else { + Seleccionar = replaceAll('[$DESCRIPCION]', 'Ver Respuestas', Seleccionar); + } + TableItems.row.add([item.IdEncabezadoEncuesta, + item.Estado, + item.EncabezadoEncuesta.Descripcion, + Seleccionar]).draw(); + }); - if ($.fn.DataTable.isDataTable('#tableEncuestas')) { - - $('#tableEncuestas').DataTable().search('').draw(); - ENDREQUEST(); - } - + ENDREQUEST(); + } } +this.ObtenerRolPantalla = function () { + var uri = CatalogosWCF + '/api/ObtenerRolesPantalla'; + var model = { + codigo: Pantallas.SuperUser.Codigo + }; + AjaxPostData(uri, model, false, false, ObtenerUsuarioRol, null, null); + +} +this.ObtenerUsuarioRol = function (data) { + + var modelPost = { + listaCodigos: [] + }; + + $.each(data, function (key, item) { + modelPost.listaCodigos.push(item.IdRol); + }); + + if (modelPost.listaCodigos.indexOf(1) == -1) + modelPost.listaCodigos.push(Roles.FuncionalExperto.Codigo); + + var uri = CatalogosWCF + '/api/ObtenerUsuariosRol'; + AjaxPostData(uri, modelPost, false, false, VerificarSuperusuario, null, null); + +} +this.VerificarSuperusuario = function (data) { + + $.each(data, function (key, item) { + if (item.UsuarioSistema == UsuarioSistema) + { + esSu = true; + } + + }); +} +this.CargarUsuarios = function () { + + var uri = SinortWCF + '/api/ObtenerUsuariosEncuestas'; + + var model = { + IdEncabezadoEncuesta: IdEncabezadoEncuesta + }; + AjaxPostData(uri, model, false, false, CargarGridUsuarios, null, null); + +} + +this.CargarGridUsuarios = function (data) { + + data = data.UsuariosEncuestas; + if (data != null) { + + var Seleccionar = $("#ucBtnSeleccionarCatalogo").html(); + var columnDefinition = [ + { "data": "UsuarioSistema", className: "center" }, + { "data": "Usuario.NombreUsuario", className: "center" }, + { "data": null, className: "center", defaultContent: Seleccionar } + ]; + + $('#tableUsuario').TableInit(0, false, true, true, false, columnDefinition, data, false); + } + + else { + + toastr.error("Ha ocurrido un error inesperado. Vuelva a intentarlo mas tarde", Message_Error); + } + + ENDREQUEST(); +} $('#tableEncuestas').on('click', 'button', function () { @@ -77,15 +148,42 @@ $('#tableEncuestas').on('click', 'button', function () { //} - + IdEncabezadoEncuesta = data[0].toString(); + Estado = data[1]; + if (esSu) { + + $('#modalUsuario').modal('show'); + CargarUsuarios(); + } + else { + url = $("#hiddenHref").val(); url = url.replace("View", "ResponderEncuesta"); url = url.replace("Controller", "NormativaReglamentacionTecnica"); - url = url.replace("[$ID]", ROT47(data.IdEncabezadoEncuesta.toString())); - url = url.replace("[$ESTADO]", ROT47(data.Estado != true ? "0" : "1")); - - - + url = url.replace("[$ID]", ROT47(data[0].toString())); + url = url.replace("[$ESTADO]", ROT47(data[1] != "true" ? "0" : "1")); + url = url.replace("[$USUARIO]", UsuarioSistema); document.location.href = url; + } + + + + + +}); +$('#tableUsuario').on('click', 'button', function () { + + var datos = $('#tableUsuario').DataTable().row($(this).parents('tr')).data(); + + + url = $("#hiddenHref").val(); + url = url.replace("View", "ResponderEncuesta"); + url = url.replace("Controller", "NormativaReglamentacionTecnica"); + url = url.replace("[$ID]", ROT47(IdEncabezadoEncuesta)); + url = url.replace("[$ESTADO]", ROT47(Estado != "true" ? "0" : "1")); + url = url.replace("[$USUARIO]", datos.UsuarioSistema); + document.location.href = url; + + $('#modalUsuario').modal('hide'); }); diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/ResponderEncuesta.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/ResponderEncuesta.js index 14f1712fb..046206bf6 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/ResponderEncuesta.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/ResponderEncuesta.js @@ -1,7 +1,9 @@ var model = {}; var EncuestaId; +var EncuestaEstado; var Titulo; +var Usuario; jQuery(document).ready(function () { @@ -13,10 +15,14 @@ jQuery(document).ready(function () { this.getDataModel = function () { EncuestaId = (IsNullOrEmpty(ObtenerParametros().encuestaid)) ? '' : ROT47(ObtenerParametros().encuestaid); + EncuestaEstado = (IsNullOrEmpty(ObtenerParametros().estado)) ? false : ROT47(ObtenerParametros().estado) == "1" ? true : false; + Usuario = (IsNullOrEmpty(ObtenerParametros().usuario)) ? '' : ObtenerParametros().usuario; var uri = SinortWCF + '/api/ObtenerDetalleEncuesta'; var model = { - IdEncabezadoEncuesta: EncuestaId + IdEncabezadoEncuesta: EncuestaId, + Estado: EncuestaEstado, + UsuarioSistema: Usuario } AjaxPostData(uri, model, false, false, CrearEncuesta, null, null); } @@ -33,8 +39,6 @@ this.CrearEncuesta = function (data) { survey.locale = "es"; survey.title = data.DetalleEncuestas[0].EncabezadoEncuesta.Descripcion; survey.showProgressBar = "top"; - survey.surveyId = '5af48e08-a0a5-44a5-83f4-1c90e8e98de1'; - survey.surveyPostId = '3ce10f8b-2d8a-4ca2-a110-2994b9e697a1'; var page = {}; @@ -90,25 +94,30 @@ this.CrearEncuesta = function (data) { }); - var model = { + var model = { + UsuariosEncuesta: { + IdEncabezadoEncuesta: EncuestaId, + UsuarioSistema: UsuarioSistema, + }, ListaRespuestas: ListaRespuestas, }; AjaxPostData(uri, model, false, true, null, null, null); - //document - // .querySelector('#surveyResult') - // .innerHTML = "result: " + JSON.stringify(result.data); + }); - if(){ - survey.data = { - comentariopizza: 'John Doe', - Idioma: { "Inglés": "Intermedio", "Italiano": "Intermedio" }, - NIVEL: 4, - pregunta1: ["uno", "tres"] - }; - survey.mode = 'display'; + if (EncuestaEstado) { + + var dataObject = {}; + + $.each(data.ListaRespuestas, function (key, item) { + dataObject[item.NombrePregunta] = JSON.parse(item.Respuesta); + }); + + survey.data = dataObject; + survey.mode = 'display'; } + $("#surveyElement").Survey({ model: survey }); diff --git a/AYA.SlnSynor/AYA.SlnSynor/Views/NormativaReglamentacionTecnica/MisEncuestas.cshtml b/AYA.SlnSynor/AYA.SlnSynor/Views/NormativaReglamentacionTecnica/MisEncuestas.cshtml index e8a3e7180..845eede10 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Views/NormativaReglamentacionTecnica/MisEncuestas.cshtml +++ b/AYA.SlnSynor/AYA.SlnSynor/Views/NormativaReglamentacionTecnica/MisEncuestas.cshtml @@ -4,7 +4,7 @@ Layout = "~/Views/Shared/_Layout.cshtml"; } - +

   Mis Encuestas

@@ -16,6 +16,7 @@ ID + Estado Título Acción @@ -42,6 +43,44 @@ + + +@section Modals{ + @*---------------------Usuarios---------------------------------------------------------*@ + +} @section scripts{ diff --git a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/EncuestaDAL.cs b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/EncuestaDAL.cs index b0c4c9cdb..9b8fb7d80 100644 --- a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/EncuestaDAL.cs +++ b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/EncuestaDAL.cs @@ -152,13 +152,23 @@ namespace AYA.SlnSinortModel.DAL.Sinort { using (SinortContex db = new SinortContex()) { + if (model.UsuarioSistema != null) + { + registros.UsuariosEncuestas = db.UsuariosEncuesta + .Include(q => q.EncabezadoEncuesta) + .Where(x => x.UsuarioSistema == model.UsuarioSistema).AsNoTracking() + .ToList(); + } + else { + registros.UsuariosEncuestas = db.UsuariosEncuesta + .Include(q => q.EncabezadoEncuesta) + .Where(x => x.Estado == true).AsNoTracking() + .ToList(); - registros.UsuariosEncuestas = db.UsuariosEncuesta - .Include(q => q.EncabezadoEncuesta) - .Where(x => x.UsuarioSistema == model.UsuarioSistema).AsNoTracking() - .ToList(); + } + registros.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; } } @@ -177,6 +187,18 @@ namespace AYA.SlnSinortModel.DAL.Sinort { using (SinortContex db = new SinortContex()) { + if (model.Estado) + { + model.ListaRespuestas = db.RespuestaEncuesta + .Include(q => q.EncabezadoEncuesta) + .Where(x => x.Estado == true && x.IdEncabezadoEncuesta == model.IdEncabezadoEncuesta + && x.UsuarioSistema == model.UsuarioSistema).AsNoTracking() + .ToList(); + + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; + + + } model.DetalleEncuestas = db.DetalleEncuesta .Include(q => q.EncabezadoEncuesta) @@ -210,6 +232,7 @@ namespace AYA.SlnSinortModel.DAL.Sinort } } + } } catch (Exception ex) @@ -302,17 +325,47 @@ namespace AYA.SlnSinortModel.DAL.Sinort return model; } + public EncuestaJSON ObtenerUsuariosEncuestas(EncuestaJSON model){ + + + try + { + + using (SinortContex Conn = new SinortContex()) + { + model.UsuariosEncuestas = Conn.UsuariosEncuesta + .Include("Usuario") + .Where(x => x.Estado == true && x.IdEncabezadoEncuesta == model.IdEncabezadoEncuesta).AsNoTracking() + .ToList(); + + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; + } + + } + catch (DbEntityValidationException ex) + { + log.Error(ex); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + } + catch (Exception ex) + { + log.Error(ex); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + } + + return model; + } public EncuestaJSON GuardarUsuariosEncuesta(EncuestaJSON model) { - UsuariosEncuesta Actual = new UsuariosEncuesta(); try { using (SinortContex Conn = new SinortContex()) { - Actual = Conn.UsuariosEncuesta + model.UsuariosEncuesta = Conn.UsuariosEncuesta .FirstOrDefault(x => x.IdEncabezadoEncuesta == model.UsuariosEncuesta.IdEncabezadoEncuesta && x.UsuarioSistema == model.UsuariosEncuesta.UsuarioSistema); - if (Actual == null) + + if (model == null || model.UsuariosEncuesta == null) { model.UsuariosEncuesta.UsuarioCreacion = model.UserName; model.UsuariosEncuesta.FechaCreacion = DateTime.Now; @@ -322,10 +375,12 @@ namespace AYA.SlnSinortModel.DAL.Sinort { model.UsuariosEncuesta.UsuarioModificacion = model.UserName; model.UsuariosEncuesta.FechaModificacion = DateTime.Now; - Conn.Entry(Actual).State = System.Data.Entity.EntityState.Detached; + model.UsuariosEncuesta.Estado = true; + Conn.Entry(model.UsuariosEncuesta).State = System.Data.Entity.EntityState.Detached; Conn.UsuariosEncuesta.Attach(model.UsuariosEncuesta); Conn.Entry(model.UsuariosEncuesta).State = System.Data.Entity.EntityState.Modified; } + Conn.SaveChanges(); Conn.Commit(); diff --git a/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs b/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs index d86e2103b..294405069 100644 --- a/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs +++ b/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs @@ -114,6 +114,8 @@ namespace AYA.SlnSinortModel.Entidades public string UsuarioSistema { get; set; } public string Mensaje { get; set; } public string BodyEncuestaJson { get; set; } + + public bool Estado { get; set; } }