This commit is contained in:
jmoya 2018-08-06 22:11:39 +00:00
parent e5eff3e46d
commit 4ac501d5cf
7 changed files with 293 additions and 66 deletions

View file

@ -147,6 +147,9 @@ namespace AYA.SlnSinort.WCF
[OperationContract] [OperationContract]
EncuestaJSON GuardarUsuariosEncuesta(EncuestaJSON model); EncuestaJSON GuardarUsuariosEncuesta(EncuestaJSON model);
[OperationContract]
EncuestaJSON ObtenerUsuariosEncuestas(EncuestaJSON model);
#endregion #endregion
} }

View file

@ -1071,6 +1071,22 @@ namespace AYA.SlnSinort.WCF
} }
return registros; 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) public EncuestaJSON ObtenerDetalleEncuesta(EncuestaJSON model)
{ {
@ -1210,6 +1226,8 @@ namespace AYA.SlnSinort.WCF
{ {
try try
{ {
var EncuestaDAL = new EncuestaDAL();
if (model == null || model.ListaRespuestas == null) if (model == null || model.ListaRespuestas == null)
{ {
@ -1218,7 +1236,10 @@ namespace AYA.SlnSinort.WCF
return model; return model;
} }
model = new EncuestaDAL().GuardarRespuestaEncuesta(model); model = EncuestaDAL.GuardarRespuestaEncuesta(model);
if (model.CodigoRespuesta == EnumTipoCodigoRespuesta.EXITOSO)
EncuestaDAL.GuardarUsuariosEncuesta(model);
} }
catch (Exception ex) catch (Exception ex)

View file

@ -1,16 +1,35 @@
var Item = {}; var Item = {};
var data; var data;
var esSu = false;
var IdEncabezadoEncuesta;
var Estado;
jQuery(document).ready(function () { jQuery(document).ready(function () {
ObtenerRolPantalla();
CargarEncuestas(); 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 () { this.CargarEncuestas = function () {
var uri = SinortWCF + '/api/ObtenerEncabezadoEncuesta'; var uri = SinortWCF + '/api/ObtenerEncabezadoEncuesta';
var model = { if (esSu)
UsuarioSistema: UsuarioSistema {
var model = {
UsuarioSistema: null
}
}
else{
var model = {
UsuarioSistema: UsuarioSistema
}
} }
AjaxPostData(uri, model, false, false, CargarTablaEncuestas, null, null); AjaxPostData(uri, model, false, false, CargarTablaEncuestas, null, null);
} }
@ -18,51 +37,103 @@ this.CargarEncuestas = function () {
this.CargarTablaEncuestas = function (data) { this.CargarTablaEncuestas = function (data) {
if (data != null && data.UsuariosEncuestas != null) { if (data != null && data.UsuariosEncuestas != null) {
Encuesta = data.UsuariosEncuestas; Encuesta = data.UsuariosEncuestas;
var Seleccionar = $("#ucbtnRespuesta").html();
if (data.UsuariosEncuestas[0].Estado == true) {
var descripcion;
descripcion = $("#ucDesc").html();
descripcion = replaceAll('[$DESCRIPCION]','Ver Respuestas', descripcion); var TableItems = $('#tableEncuestas').DataTable();
$('#btnseleccionar').empty();
$('#btnseleccionar').append(descripcion);
}
else {
var descripcion;
descripcion = $("#ucDesc").html();
descripcion = replaceAll('[$DESCRIPCION]', 'Responder', descripcion); $.each(Encuesta, function (key, item) {
$('#btnseleccionar').empty();
$('#btnseleccionar').append(descripcion);
}
var columnDefinition = [ var Seleccionar = $("#ucbtnRespuesta").html();
{ "data": 'IdEncabezadoEncuesta', "visible": false },
{ "data": "EncabezadoEncuesta.Descripcion" },
{ "data": null, className: "center", defaultContent: Seleccionar }
];
$('#tableEncuestas').DataTable({
initComplete: function () { if (item.Estado == false) {
Seleccionar = replaceAll('[$DESCRIPCION]', 'Responder', Seleccionar);
$('#tableEncuestas').TableInit(1, false, true, true, true, columnDefinition, Encuesta);
} }
else {
Seleccionar = replaceAll('[$DESCRIPCION]', 'Ver Respuestas', Seleccionar);
}
TableItems.row.add([item.IdEncabezadoEncuesta,
item.Estado,
item.EncabezadoEncuesta.Descripcion,
Seleccionar]).draw();
}); });
if ($.fn.DataTable.isDataTable('#tableEncuestas')) { ENDREQUEST();
$('#tableEncuestas').DataTable().search('').draw();
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 () { $('#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 = $("#hiddenHref").val();
url = url.replace("View", "ResponderEncuesta"); url = url.replace("View", "ResponderEncuesta");
url = url.replace("Controller", "NormativaReglamentacionTecnica"); url = url.replace("Controller", "NormativaReglamentacionTecnica");
url = url.replace("[$ID]", ROT47(data.IdEncabezadoEncuesta.toString())); url = url.replace("[$ID]", ROT47(data[0].toString()));
url = url.replace("[$ESTADO]", ROT47(data.Estado != true ? "0" : "1")); url = url.replace("[$ESTADO]", ROT47(data[1] != "true" ? "0" : "1"));
url = url.replace("[$USUARIO]", UsuarioSistema);
document.location.href = url; 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');
}); });

View file

@ -1,7 +1,9 @@
var model = {}; var model = {};
var EncuestaId; var EncuestaId;
var EncuestaEstado;
var Titulo; var Titulo;
var Usuario;
jQuery(document).ready(function () { jQuery(document).ready(function () {
@ -13,10 +15,14 @@ jQuery(document).ready(function () {
this.getDataModel = function () { this.getDataModel = function () {
EncuestaId = (IsNullOrEmpty(ObtenerParametros().encuestaid)) ? '' : ROT47(ObtenerParametros().encuestaid); 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 uri = SinortWCF + '/api/ObtenerDetalleEncuesta';
var model = { var model = {
IdEncabezadoEncuesta: EncuestaId IdEncabezadoEncuesta: EncuestaId,
Estado: EncuestaEstado,
UsuarioSistema: Usuario
} }
AjaxPostData(uri, model, false, false, CrearEncuesta, null, null); AjaxPostData(uri, model, false, false, CrearEncuesta, null, null);
} }
@ -33,8 +39,6 @@ this.CrearEncuesta = function (data) {
survey.locale = "es"; survey.locale = "es";
survey.title = data.DetalleEncuestas[0].EncabezadoEncuesta.Descripcion; survey.title = data.DetalleEncuestas[0].EncabezadoEncuesta.Descripcion;
survey.showProgressBar = "top"; survey.showProgressBar = "top";
survey.surveyId = '5af48e08-a0a5-44a5-83f4-1c90e8e98de1';
survey.surveyPostId = '3ce10f8b-2d8a-4ca2-a110-2994b9e697a1';
var page = {}; var page = {};
@ -90,25 +94,30 @@ this.CrearEncuesta = function (data) {
}); });
var model = { var model = {
UsuariosEncuesta: {
IdEncabezadoEncuesta: EncuestaId,
UsuarioSistema: UsuarioSistema,
},
ListaRespuestas: ListaRespuestas, ListaRespuestas: ListaRespuestas,
}; };
AjaxPostData(uri, model, false, true, null, null, null); AjaxPostData(uri, model, false, true, null, null, null);
//document
// .querySelector('#surveyResult')
// .innerHTML = "result: " + JSON.stringify(result.data);
}); });
if(){ if (EncuestaEstado) {
survey.data = {
comentariopizza: 'John Doe', var dataObject = {};
Idioma: { "Inglés": "Intermedio", "Italiano": "Intermedio" },
NIVEL: 4, $.each(data.ListaRespuestas, function (key, item) {
pregunta1: ["uno", "tres"] dataObject[item.NombrePregunta] = JSON.parse(item.Respuesta);
}; });
survey.mode = 'display';
survey.data = dataObject;
survey.mode = 'display';
} }
$("#surveyElement").Survey({ $("#surveyElement").Survey({
model: survey model: survey
}); });

View file

@ -4,7 +4,7 @@
Layout = "~/Views/Shared/_Layout.cshtml"; Layout = "~/Views/Shared/_Layout.cshtml";
} }
<input type="hidden" id="hiddenHref" value="@string.Concat(Url.Action("View", "Controller", null), ViewBag.QueryEncripted)?encuestaid=[$ID]&&estado=[$ESTADO]"> <input type="hidden" id="hiddenHref" value="@string.Concat(Url.Action("View", "Controller", null), ViewBag.QueryEncripted)?encuestaid=[$ID]&estado=[$ESTADO]&usuario=[$USUARIO]">
<form id="formEncuestas" class="form-horizontal" role="form"> <form id="formEncuestas" class="form-horizontal" role="form">
<div class="panel-body"> <h3>&nbsp;<i class="glyphicon glyphicon-list-alt"></i>&nbsp; Mis Encuestas </h3> </div> <div class="panel-body"> <h3>&nbsp;<i class="glyphicon glyphicon-list-alt"></i>&nbsp; Mis Encuestas </h3> </div>
@ -16,6 +16,7 @@
<thead> <thead>
<tr> <tr>
<th class="col-sm-1">ID</th> <th class="col-sm-1">ID</th>
<th class="col-sm-1">Estado</th>
<th class="col-sm-5">Título</th> <th class="col-sm-5">Título</th>
<th class="col-sm-5">Acción</th> <th class="col-sm-5">Acción</th>
</tr> </tr>
@ -42,6 +43,44 @@
</span> </span>
</div> </div>
<div id="ucBtnSeleccionarCatalogo" style="display:none;">
<button type="button" id="btnSeleccionarCatalogo" class="btn btn-default btn-xs">
<i id="ibtnSeleccionarCatalogo" class="fa fa-check"></i>
</button>
</div>
@section Modals{
@*---------------------Usuarios---------------------------------------------------------*@
<div class="modal fade" id="modalUsuario" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" style="display: none; z-index: 1600; ">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title">Catálogo Usuarios</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<table id="tableUsuario" class="table table-striped">
<thead>
<tr>
<th class="col-sm-2">Usuario</th>
<th class="col-sm-4">Nombre</th>
<th></th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
}
@section scripts{ @section scripts{

View file

@ -152,13 +152,23 @@ namespace AYA.SlnSinortModel.DAL.Sinort
{ {
using (SinortContex db = new SinortContex()) 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; registros.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO;
} }
} }
@ -177,6 +187,18 @@ namespace AYA.SlnSinortModel.DAL.Sinort
{ {
using (SinortContex db = new SinortContex()) 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 model.DetalleEncuestas = db.DetalleEncuesta
.Include(q => q.EncabezadoEncuesta) .Include(q => q.EncabezadoEncuesta)
@ -210,6 +232,7 @@ namespace AYA.SlnSinortModel.DAL.Sinort
} }
} }
} }
} }
catch (Exception ex) catch (Exception ex)
@ -302,17 +325,47 @@ namespace AYA.SlnSinortModel.DAL.Sinort
return model; 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) public EncuestaJSON GuardarUsuariosEncuesta(EncuestaJSON model)
{ {
UsuariosEncuesta Actual = new UsuariosEncuesta();
try try
{ {
using (SinortContex Conn = new SinortContex()) using (SinortContex Conn = new SinortContex())
{ {
Actual = Conn.UsuariosEncuesta model.UsuariosEncuesta = Conn.UsuariosEncuesta
.FirstOrDefault(x => x.IdEncabezadoEncuesta == model.UsuariosEncuesta.IdEncabezadoEncuesta .FirstOrDefault(x => x.IdEncabezadoEncuesta == model.UsuariosEncuesta.IdEncabezadoEncuesta
&& x.UsuarioSistema == model.UsuariosEncuesta.UsuarioSistema); && x.UsuarioSistema == model.UsuariosEncuesta.UsuarioSistema);
if (Actual == null)
if (model == null || model.UsuariosEncuesta == null)
{ {
model.UsuariosEncuesta.UsuarioCreacion = model.UserName; model.UsuariosEncuesta.UsuarioCreacion = model.UserName;
model.UsuariosEncuesta.FechaCreacion = DateTime.Now; model.UsuariosEncuesta.FechaCreacion = DateTime.Now;
@ -322,10 +375,12 @@ namespace AYA.SlnSinortModel.DAL.Sinort
{ {
model.UsuariosEncuesta.UsuarioModificacion = model.UserName; model.UsuariosEncuesta.UsuarioModificacion = model.UserName;
model.UsuariosEncuesta.FechaModificacion = DateTime.Now; 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.UsuariosEncuesta.Attach(model.UsuariosEncuesta);
Conn.Entry(model.UsuariosEncuesta).State = System.Data.Entity.EntityState.Modified; Conn.Entry(model.UsuariosEncuesta).State = System.Data.Entity.EntityState.Modified;
} }
Conn.SaveChanges(); Conn.SaveChanges();
Conn.Commit(); Conn.Commit();

View file

@ -114,6 +114,8 @@ namespace AYA.SlnSinortModel.Entidades
public string UsuarioSistema { get; set; } public string UsuarioSistema { get; set; }
public string Mensaje { get; set; } public string Mensaje { get; set; }
public string BodyEncuestaJson { get; set; } public string BodyEncuestaJson { get; set; }
public bool Estado { get; set; }
} }