diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs index d7db273fd..824c98305 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs @@ -141,6 +141,9 @@ namespace AYA.SlnSinort.WCF [OperationContract] EncuestaJSON GuardarEncuesta(EncuestaJSON model); + + [OperationContract] + EncuestaJSON GuardarUsuariosEncuesta(EncuestaJSON model); #endregion } diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs index d75517941..0e095c0e0 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs @@ -1105,15 +1105,21 @@ namespace AYA.SlnSinort.WCF { try { - if (model.DetalleEncuesta == null) + var encuestaDAL = new EncuestaDAL(); + if (model.DetalleEncuestas == null) { - model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA; - model.DescripcionRespuesta = "No se encontraron datos de la solicitud"; + model.DescripcionRespuesta = "No se encontraron datos de los convocados"; return model; } - model = new EncuestaDAL().GuardarPregunta(model); + foreach (var preguntas in model.DetalleEncuestas) + { + model.DetalleEncuesta = preguntas; + encuestaDAL.GuardarPregunta(model); + } + + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; } catch (Exception ex) @@ -1169,7 +1175,36 @@ namespace AYA.SlnSinort.WCF } return model; } - + + public EncuestaJSON GuardarUsuariosEncuesta(EncuestaJSON model) + { + + try + { + var encuestaDAL = new EncuestaDAL(); + if (model.ListaUsuariosEncuestas == null) + { + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA; + model.DescripcionRespuesta = "No se encontraron datos de los convocados"; + return model; + } + + foreach (var encuestados in model.ListaUsuariosEncuestas) + { + model.UsuariosEncuesta = encuestados; + encuestaDAL.GuardarUsuariosEncuesta(model); + } + + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; + + } + catch (Exception ex) + { + log.Error(ex); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + } + return model; + } #endregion diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/CrearEncuesta.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/CrearEncuesta.js index 1d52668dc..7e24da757 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/CrearEncuesta.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/NormativaReglamentacionTecnica/CrearEncuesta.js @@ -132,19 +132,20 @@ this.AgregarPregunta = function () { var option = $("#ucbtnRemover").html(); if ($('#chkRequerido').prop('checked')) { - requerido = '*'; + requerido = true; } else { - requerido = ''; + requerido = false; } tablePreguntas.row.add([ - $('#txtTipoPregunta').val(), - $('#txtTituloPregunta').val(), - $('#txtNombrePregunta').val(), - requerido, - $('#tableRespuestas').val(), - option + $("#hiddenTipoPregunta").val(), + $('#txtTipoPregunta').val(), + $('#txtTituloPregunta').val(), + $('#txtNombrePregunta').val(), + requerido, + $('#tableRespuestas').val(), + option ]).draw(); LimpiarPregunta(); @@ -348,10 +349,8 @@ this.GuardarEncuesta = function () { this.GuardarDetalleEncuesta = function (data) { - if (data.CodigoRespuesta == "EXITOSO") { - tablePreguntas = $('#tablePreguntas').DataTable(); - IdEncabezadoEncuesta = data.EncabezadoEncuesta.IdEncabezadoEncuesta; + IdEncabezadoEncuesta = data.EncabezadoEncuesta.IdEncuesta; var ArrayPreguntas = []; var data = tablePreguntas @@ -361,28 +360,60 @@ this.GuardarDetalleEncuesta = function (data) { $.each(data, function (key, item) { Pregunta = { - IdDetalleEncuesta: item[0], IdEncabezadoEncuesta: IdEncabezadoEncuesta, - IdTipoPregunta: item[1], - DescTipoPregunta: item[2], - TituloPregunta: item[3], - NombrePregunta: item[4], - Requerido: item[5], - RespuestaPregunta: item[6], - Estado: 1 + IdTipoPregunta: item[0], + DescTipoPregunta: item[1], + TituloPregunta: item[2], + NombrePregunta: item[3], + Requerido: item[4], + RespuestaPregunta: item[5], + Estado: 1, } ArrayPreguntas.push(Pregunta); }); var uri = SinortWCF + '/api/GuardarPregunta'; var model = { - ListaPreguntas: ArrayPreguntas + DetalleEncuestas: ArrayPreguntas }; - AjaxPostData(uri, model, false, true, null, null, null); + AjaxPostData(uri, model, false, true, GuardarUsuariosEncuesta, null, null); +} - //LimpiarPropuesta(); - location.reload(); - } +this.GuardarUsuariosEncuesta = function (data) { + + tableUsuarios = $('#tableUsuarios').DataTable(); + IdEncabezadoEncuesta = data.EncabezadoEncuesta.IdEncuesta; + + var ArrayUsuarios = []; + var data = tableUsuarios + .rows() + .data(); + + $.each(data, function (key, item) { + + Encuestados = { + UsuarioSistema: item[0], + IdEncabezadoEncuesta: IdEncabezadoEncuesta, + Estado: 1, + } + ArrayUsuarios.push(Encuestados); + }); + + var uri = SinortWCF + '/api/GuardarUsuariosEncuesta'; + var model = { + ListaUsuariosEncuestas: ArrayUsuarios + }; + + AjaxPostData(uri, model, false, true, null, null, null); + + LimpiarEncuesta(); + location.reload(); +} + +this.LimpiarEncuesta = function () { + $("#txtTituloEncuesta").val(''); + tablePreguntas = $('#tablePreguntas').DataTable(); + tablePreguntas.clear().draw(); } //fin encuesta diff --git a/AYA.SlnSynor/AYA.SlnSynor/Views/NormativaReglamentacionTecnica/CrearEncuesta.cshtml b/AYA.SlnSynor/AYA.SlnSynor/Views/NormativaReglamentacionTecnica/CrearEncuesta.cshtml index 7c7b009db..eb86ece73 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Views/NormativaReglamentacionTecnica/CrearEncuesta.cshtml +++ b/AYA.SlnSynor/AYA.SlnSynor/Views/NormativaReglamentacionTecnica/CrearEncuesta.cshtml @@ -45,6 +45,7 @@ + @@ -53,6 +54,7 @@ + diff --git a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/EncuestaDAL.cs b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/EncuestaDAL.cs index 630b88dc5..a987b172c 100644 --- a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/EncuestaDAL.cs +++ b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/EncuestaDAL.cs @@ -82,14 +82,16 @@ namespace AYA.SlnSinortModel.DAL.Sinort public EncuestaJSON GuardarPregunta(EncuestaJSON model) { + DetalleEncuesta Actual = new DetalleEncuesta(); try { using (SinortContex Conn = new SinortContex()) { + Actual = Conn.DetalleEncuesta + .FirstOrDefault(x => x.IdDetalleEncuesta == model.DetalleEncuesta.IdDetalleEncuesta + && x.IdEncabezadoEncuesta == model.DetalleEncuesta.IdEncabezadoEncuesta); - model.DetalleEncuesta.ClearProperties(); - - if (!Conn.DetalleEncuesta.Any(x => x.IdDetalleEncuesta == model.DetalleEncuesta.IdDetalleEncuesta)) + if (Actual == null) { int? Next_id = Conn.DetalleEncuesta.Max(t => (int?)t.IdDetalleEncuesta); model.DetalleEncuesta.IdDetalleEncuesta = (Next_id == null) ? 1 : Next_id.Value + 1; @@ -167,7 +169,7 @@ namespace AYA.SlnSinortModel.DAL.Sinort using (SinortContex db = new SinortContex()) { - registros.UsuariosEncuestas = db.UsuariosEncuesta + registros.ListaUsuariosEncuestas = db.UsuariosEncuesta .Include(q => q.EncabezadoEncuesta) .Where(x => x.Estado == true && x.UsuarioSistema == model.UsuarioSistema).AsNoTracking() .ToList(); @@ -278,5 +280,49 @@ namespace AYA.SlnSinortModel.DAL.Sinort return model; } + + public EncuestaJSON GuardarUsuariosEncuesta(EncuestaJSON model) + { + UsuariosEncuesta Actual = new UsuariosEncuesta(); + try + { + using (SinortContex Conn = new SinortContex()) + { + Actual = Conn.UsuariosEncuesta + .FirstOrDefault(x => x.IdEncabezadoEncuesta == model.UsuariosEncuesta.IdEncabezadoEncuesta + && x.UsuarioSistema == model.UsuariosEncuesta.UsuarioSistema); + if (Actual == null) + { + model.UsuariosEncuesta.UsuarioCreacion = model.UserName; + model.UsuariosEncuesta.FechaCreacion = DateTime.Now; + Conn.UsuariosEncuesta.Add(model.UsuariosEncuesta); + } + else + { + model.UsuariosEncuesta.UsuarioModificacion = model.UserName; + model.UsuariosEncuesta.FechaModificacion = DateTime.Now; + Conn.Entry(Actual).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(); + + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO.ToString(); + } + } + catch (DbEntityValidationException ex) + { + log.Error(ex); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR.ToString(); + } + catch (Exception ex) + { + log.Error(ex); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR.ToString(); + } + + return model; + } } } diff --git a/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs b/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs index 194016aae..9850f8182 100644 --- a/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs +++ b/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs @@ -101,7 +101,7 @@ namespace AYA.SlnSinortModel.Entidades public List TipoPreguntas { get; set; } public List DetalleEncuestas { get; set; } public List EncabezadoEncuestas { get; set; } - public List UsuariosEncuestas { get; set; } + public List ListaUsuariosEncuestas { get; set; } public List questions { get; set; } public PlantillaEmail PlantillaEmail { get; set; } public TareasPendientes TareasPendientes { get; set; }