This commit is contained in:
dmendez 2018-07-30 22:57:04 +00:00
parent a7ff6ece1f
commit 69818214e4
7 changed files with 424 additions and 85 deletions

View file

@ -123,6 +123,17 @@ namespace AYA.SlnSinort.WCF
SolicitudJSON EnviarCorreoSolicitud(SolicitudJSON model);
#endregion
#region Encuestas
[OperationContract]
List<DetalleEncuesta> ObtenerDetalleEncuesta();
[OperationContract]
EncuestaJSON GuardarPregunta(EncuestaJSON model);
[OperationContract]
EncuestaJSON ObtenerEncuestas(EncuestaJSON model);
#endregion
}
}

View file

@ -1056,6 +1056,69 @@ namespace AYA.SlnSinort.WCF
}
#endregion
#region Encuesta
public List<DetalleEncuesta> ObtenerDetalleEncuesta()
{
List<DetalleEncuesta> respuesta = null;
try
{
respuesta = new EncuestaDAL().ObtenerDetalleEncuesta();
}
catch (Exception ex)
{
log.Error(ex);
}
return respuesta;
}
public EncuestaJSON GuardarPregunta(EncuestaJSON model)
{
try
{
if (model.DetalleEncuesta == null)
{
model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA;
model.DescripcionRespuesta = "No se encontraron datos de la solicitud";
return model;
}
model = new EncuestaDAL().GuardarPregunta(model);
}
catch (Exception ex)
{
log.Error(ex);
model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR;
}
return model;
}
public EncuestaJSON ObtenerEncuestas(EncuestaJSON model)
{
try
{
if (model.DetalleEncuesta == null)
{
model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA;
model.DescripcionRespuesta = "No se encontraron datos de la ficha técnica";
return model;
}
model = new EncuestaDAL().ObtenerEncuestas(model);
}
catch (Exception ex)
{
log.Error(ex);
model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR;
}
return model;
}
#endregion
}
}

View file

@ -83,9 +83,7 @@ this.CargarTablaSolicitudes = function (data) {
select.append('<option value="' + d + '">' + d + '</option>')
});
}
}
);
});
}
});

View file

@ -5,90 +5,82 @@
}
<form id="formCrearEncuesta" class="form-horizontal" role="form">
<div class="panel-body"> <h3>&nbsp;<i class="fa fa-file-text"></i>&nbsp; Crear Encuesta</h3> </div>
<div style="background-color: #fff">
<div class="panel-body">
@*<div id="surveyElement">
</div>*@
<div class="row">
<div class="col-md-6">
@*---------------------Tipo Pregunta---------------------------------------------------------*@
<div class="form-group" id="divTipoPregunta">
<label class="col-sm-4 control-label ControlsForms" id="lblTipoPregunta">Tipo de Pregunta</label>
<div class="input-group input-group-sm col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input id="hiddenTipoPregunta" type="hidden">
<input name="txtTipoPregunta" title="" class="form-control TextBoxCatalogo inputWarning error" id="txtTipoPregunta" type="text" readonly="readonly" data-original-title="">
<span class="input-group-btn">
<button class="btn btn-default btn-medium" id="btn_eliminarTipoPregunta" type="button">
<i class="fa fa-close"></i>
</button>
<button class="btn btn-success btn-medium btn-margin-catalogo" id="btnBuscarTipoPregunta" type="button">
<i class="fa fa-search"></i>&nbsp;
</button>
</span>
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
<div class="panel-body"> <h3>&nbsp;<i class="fa fa-file-text"></i>&nbsp;Crear Encuesta</h3> </div>
<div style="background-color: #fff">
<div class="panel-body">
@*<div id="surveyElement"></div>*@
<div class="row">
<div class="col-md-6">
@*--------------------Titulo Encuesta---------------------------------------------------------*@
<div class="form-group " id="divTituloEncuesta">
<label class="col-sm-4 control-label ControlsForms" id="lblTituloEncuesta">Título de la Encuesta</label>
<div class="input-group col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input name="txtTituloEncuesta" class="form-control imput-xs" id="txtTituloEncuesta" type="text" required="required" />
</div>
</div>
</div>
@*--------------------Pregunta---------------------------------------------------------*@
<div class="form-group " id="divTituloPregunta">
<label class="col-sm-4 control-label ControlsForms" id="lblTituloPregunta">Título Pregunta</label>
<div class="input-group col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input name="txtTituloPregunta" class="form-control imput-xs" id="txtTituloPregunta" type="text" />
</div>
</div>
@*--------------------Nombre---------------------------------------------------------*@
<div class="form-group " id="divNombrePregunta">
<label class="col-sm-4 control-label ControlsForms" id="lblNombrePregunta">Nombre Pregunta</label>
<div class="input-group col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input name="txtNombrePregunta" class="form-control imput-xs" id="txtNombrePregunta" type="text" />
</div>
</div>
@*--------------------Requerido---------------------------------------------------------*@
<div class="form-group " id="divRequerido">
<label class="col-sm-4 control-label ControlsForms" id="lblRequerido">Requerido</label>
<div class="input-group col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input name="txtRequerido" class="form-control imput-xs" id="txtRequerido" type="text" />
</div>
</div>
</div>
<div class="col-md-6">
@*--------------------Nombre---------------------------------------------------------*@
<div class="form-group " id="divPreguntas">
<label class="col-sm-4 control-label ControlsForms" id="lblPreguntas">Preguntas</label>
<div class="input-group input-group-sm col-lg-6 col-md-6 col-sm-6 col-xs-6">
<button class=" btn btn-success btn-medium btn-margin-catalogo" id="btnPreguntas" type="button">
<i class=" fa fa-plus">
</i>&nbsp;Agregar
</button>
</div>
<div class="col-md-6">
@*--------------------Nombre---------------------------------------------------------*@
<div class="form-group " id="divPreguntas">
<label class="col-sm-4 control-label ControlsForms" id="lblPreguntas">Preguntas</label>
<div class="input-group input-group-sm col-lg-6 col-md-6 col-sm-6 col-xs-6">
<button class=" btn btn-success btn-medium btn-margin-catalogo" id="btnPreguntas" type="button">
<i class=" fa fa-plus">
</i>&nbsp;Agregar
</button>
</div>
</div>
</div>
</div>
</div>
</div>
@*--------------------Nombre---------------------------------------------------------*@
<div class="panel-body">
<div>
<table id="tablePreguntas" class="table table-condensed dataTable no-footer">
<thead>
<tr>
<th class="col-sm-1">ID</th>
<th class="col-sm-3">Tipo Pregunta</th>
<th class="col-sm-5">Título Pregunta</th>
@*<th class="col-sm-3">Requerido</th>*@
<th class="col-sm-2">Acción</th>
<th class="col-sm-2"></th>
</tr>
<tr>
<th class="col-sm-1"></th>
<th class="col-sm-3"></th>
<th class="col-sm-5"></th>
@*<th class="col-sm-3"></th>*@
<th class="col-sm-2"></th>
<th class="col-sm-2"></th>
</tr>
</thead>
</table>
</div>
<div id="ucbtnVista" style=" display:none;">
<button type="button" id="btnseleccionar" class="btn btn-default btn-xs">
<i class="fa fa-search"></i>&nbsp;&nbsp;Ver
</button>
</div>
</div>
</div>
<div id="ucSolicitud" style="display:none;">
<span>
[$Solicitud]
</span>
</div>
<div class="modal-footer">
@ -97,7 +89,6 @@
</button>
</div>
</div>
</form>
@ -106,10 +97,93 @@
<i id="ibtnSeleccionarCatalogo" class="fa fa-check"></i>
</button>
</div>
<div id="ucPregunta" style="display:none;">
<span>
[$Pregunta]
</span>
</div>
@section Modals{
@*---------------------Preguntas---------------------------------------------------------*@
<div class="modal fade" id="modalPreguntas" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" style="display: none; z-index:1600;">
<div class="modal-dialog modal-lg" style="width:40%;">
<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" id="identificacion">Agregar Pregunta</h4>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
@*---------------------Tipo Pregunta---------------------------------------------------------*@
<div class="form-group" id="divTipoPregunta">
<label class="col-sm-4 control-label ControlsForms" id="lblTipoPregunta">Tipo de Pregunta</label>
<div class="input-group input-group-sm col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input id="hiddenTipoPregunta" type="hidden">
<input name="txtTipoPregunta" title="" class="form-control TextBoxCatalogo inputWarning error" id="txtTipoPregunta" type="text" readonly="readonly" data-original-title="">
<span class="input-group-btn">
<button class="btn btn-default btn-medium" id="btn_eliminarTipoPregunta" type="button">
<i class="fa fa-close"></i>
</button>
<button class="btn btn-success btn-medium btn-margin-catalogo" id="btnBuscarTipoPregunta" type="button">
<i class="fa fa-search"></i>&nbsp;
</button>
</span>
</div>
</div>
@*--------------------Pregunta---------------------------------------------------------*@
<div class="form-group " id="divTituloPregunta">
<label class="col-sm-4 control-label ControlsForms" id="lblTituloPregunta">Título Pregunta</label>
<div class="input-group col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input name="txtTituloPregunta" class="form-control imput-xs" id="txtTituloPregunta" type="text" required="required" />
</div>
</div>
@*--------------------Nombre---------------------------------------------------------*@
<div class="form-group " id="divNombrePregunta">
<label class="col-sm-4 control-label ControlsForms" id="lblNombrePregunta">Nombre Pregunta</label>
<div class="input-group col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input name="txtNombrePregunta" class="form-control imput-xs" id="txtNombrePregunta" type="text" required="required" />
</div>
</div>
@*--------------------Requerido---------------------------------------------------------*@
<div class="form-group " id="divRequerido">
<label class="col-sm-4 control-label ControlsForms form-check-label" id="lblRequerido">Requerido</label>
<div class="input-group col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input class="form-check-input" type="checkbox" value="" name="chkRequerido" id="chkRequerido" style="width: 8%; height: 22px;" />
</div>
</div>
@*--------------------Respuesta---------------------------------------------------------*@
<div class="form-group " id="divRespuesta">
<label class="col-sm-4 control-label ControlsForms" id="lblRespuesta">Respuesta</label>
<div class="input-group col-lg-6 col-md-6 col-sm-6 col-xs-6">
<input name="txtRespuesta" class="form-control imput-xs" id="txtRespuesta" type="text" required="required" />
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-success btn-sm" id="btnAgregar">Agregar</button>
<button type="button" class="btn btn-danger btn-sm" data-dismiss="modal">Cerrar</button>
</div>
</div>
</div>
</div>
@*---------------------Catalogo Tipo Pregunta---------------------------------------------------------*@
<div class="modal fade" id="modalTipoPregunta" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" style="display: none;">
<div class="modal fade" id="modalTipoPregunta" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" style="display: none; z-index:1600;">
<div class="modal-dialog modal-lg" style="width:40%;">
<div class="modal-content">
<div class="modal-header">
@ -144,6 +218,57 @@
</div>
</div>
</div>
@*---------------------Ver Pregunta---------------------------------------------------------*@
<div class="modal fade" id="modalVer" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" style="display: none;z-index:1600;">
<div class="modal-dialog modal-lg" style="width:35%;">
<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" id="preguntaVer">[$Pregunta]</h4>
</div>
<div class="modal-body">
<div class="row">
@*---------------------Tipo pregunta---------------------------------------------------------*@
<div class="form-group " id="divTipo">
<label class="col-sm-2 control-label ControlsForms" id="lblTipo">Tipo Pregunta</label>
<div class="input-group col-lg-8 col-md-6 col-sm-6 col-xs-6">
<input name="txtTipo" class="form-control imput-xs" id="txtTipo" readonly style="cursor: not-allowed;" />
</div>
</div>
@*---------------------Titulo pregunta---------------------------------------------------------*@
<div class="form-group " id="divTitulo">
<label class="col-sm-2 control-label ControlsForms" id="lblTitulo">Título Pregunta</label>
<div class="input-group col-lg-8 col-md-6 col-sm-6 col-xs-6">
<input name="txtTitulo" class="form-control imput-xs" id="txtTitulo" readonly style="cursor: not-allowed;" />
</div>
</div>
@*---------------------Nombre pregunta---------------------------------------------------------*@
<div class="form-group " id="divNombre">
<label class="col-sm-2 control-label ControlsForms" id="lblNombre">Nombre Pregunta</label>
<div class="input-group col-lg-8 col-md-6 col-sm-6 col-xs-6">
<input name="txtNombre" class="form-control imput-xs" id="txtNombre" readonly style="cursor: not-allowed;" />
</div>
</div>
@*---------------------Respuesta pregunta---------------------------------------------------------*@
<div class="form-group " id="divRespuesta">
<label class="col-sm-2 control-label ControlsForms" id="lblRespuesta">Respuesta</label>
<div class="input-group col-lg-8 col-md-6 col-sm-6 col-xs-6">
<input name="txtRespuesta" class="form-control imput-xs" id="txtRespuesta" readonly style="cursor: not-allowed;" />
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-danger btn-sm" data-dismiss="modal">Cerrar</button>
</div>
</div>
</div>
</div>
</div>
}
@Scripts.Render("~/Sinort-Scripts/NormativaReglamentacionTecnica/CrearEncuesta.js")

View file

@ -1,18 +1,21 @@
using Atesa.Utilitarios;
using AYA.SlnSinortModel.Sinort;
using AYA.SlnSinortModel.Sinort;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.Entity;
using System.Data.Entity.Validation;
using AYA.SlnSinortModel.Entidades;
using Atesa.Utilitarios;
using AYA.SlnSinortModel.Constantes;
namespace AYA.SlnSinortModel.DAL.Sinort
{
public class EncuestaDAL
{
Log log = new Log("EncuestaDAL");
#region ObtenerEmisor
public List<TipoPregunta> ObtenerTipoPregunta()
{
List<TipoPregunta> respuesta = null;
@ -31,6 +34,127 @@ namespace AYA.SlnSinortModel.DAL.Sinort
return respuesta;
}
#endregion
public EncuestaJSON ObtenerTipoPregunta(EncuestaJSON model)
{
try
{
using (SinortContex Conn = new SinortContex())
{
model.TipoPregunta = Conn.TipoPregunta
.FirstOrDefault(q => q.IdTipoPregunta == model.TipoPregunta.IdTipoPregunta);
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 List<DetalleEncuesta> ObtenerDetalleEncuesta()
{
List<DetalleEncuesta> respuesta = null;
try
{
using (SinortContex db = new SinortContex())
{
respuesta = db.DetalleEncuesta.ToList();
}
}
catch (Exception ex)
{
log.Error(ex);
throw ex;
}
return respuesta;
}
public EncuestaJSON GuardarPregunta(EncuestaJSON model)
{
try
{
using (SinortContex Conn = new SinortContex())
{
model.DetalleEncuesta.ClearProperties();
if (!Conn.DetalleEncuesta.Any(x => x.IdDetalleEncuesta == model.DetalleEncuesta.IdDetalleEncuesta))
{
int? Next_id = Conn.DetalleEncuesta.Max(t => (int?)t.IdDetalleEncuesta);
model.DetalleEncuesta.IdDetalleEncuesta = (Next_id == null) ? 1 : Next_id.Value + 1;
model.DetalleEncuesta.UsuarioCreacion = model.UserName;
model.DetalleEncuesta.FechaCreacion = DateTime.Now;
Conn.DetalleEncuesta.Add(model.DetalleEncuesta);
}
else
{
model.DetalleEncuesta.UsuarioModificacion = model.UserName;
model.DetalleEncuesta.FechaModificacion = DateTime.Now;
Conn.Entry(model.DetalleEncuesta).State = System.Data.Entity.EntityState.Detached;
Conn.DetalleEncuesta.Attach(model.DetalleEncuesta);
Conn.Entry(model.DetalleEncuesta).State = System.Data.Entity.EntityState.Modified;
}
Conn.SaveChanges();
Conn.Commit();
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 ObtenerEncuestas(EncuestaJSON model)
{
EncuestaJSON registros = new EncuestaJSON();
try
{
using (SinortContex Conn = new SinortContex())
{
registros.DetalleEncuesta = Conn.DetalleEncuesta
.Include("EncabezadoEncuesta")
.FirstOrDefault(q => q.IdDetalleEncuesta == model.DetalleEncuesta.IdDetalleEncuesta);
registros.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO;
}
}
catch (DbEntityValidationException ex)
{
log.Error(ex);
registros.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR;
}
catch (Exception ex)
{
log.Error(ex);
registros.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR;
}
return registros;
}
}
}

View file

@ -92,5 +92,23 @@ namespace AYA.SlnSinortModel.Entidades
public string Mensaje { get; set; }
}
public class EncuestaJSON : BaseJson
{
public DetalleEncuesta DetalleEncuesta { get; set; }
public EncabezadoEncuesta EncabezadoEncuesta { get; set; }
public TipoPregunta TipoPregunta { get; set; }
public List<TipoPregunta> TipoPreguntas { get; set; }
public List<DetalleEncuesta> DetalleEncuestas { get; set; }
public List<EncabezadoEncuesta> EncabezadoEncuestas { get; set; }
public List<EventosJSON> EventosJSON { get; set; }
public PlantillaEmail PlantillaEmail { get; set; }
public TareasPendientes TareasPendientes { get; set; }
public List<TareasPendientes> ListaTareasPendientes { get; set; }
public List<Usuario> ListaUsuariosCorreo { get; set; }
public int IdEncabezadoEncuesta { get; set; }
public string UsuarioSistema { get; set; }
public string Mensaje { get; set; }
}
}