From 3a223e5ce7ab98b03d24cf608ba3818424d15372 Mon Sep 17 00:00:00 2001 From: mumana Date: Tue, 3 Jul 2018 14:22:44 +0000 Subject: [PATCH] git-tfs-id: [http://192.168.1.10:8080/tfs/AyA]$/SINORT;C159 --- AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs | 2 + AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs | 29 ++++++++ .../DetallePropuestaNormativa.js | 65 ++++++++++++++++-- .../AYA.SlnSinortModel.DAL.csproj | 2 +- .../Sinort/CalendarioDAL.cs | 67 +++++++++++++++++++ .../Sinort/ComentariosMatrizDAL.cs | 14 ---- .../Sinort/ProyectoNormativoDAL.cs | 25 ++++++- .../Entidades/CatalogosJSON.cs | 10 ++- .../AYA.SlnSynorModel/Entidades/Json.cs | 8 ++- 9 files changed, 195 insertions(+), 27 deletions(-) create mode 100644 AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/CalendarioDAL.cs delete mode 100644 AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/ComentariosMatrizDAL.cs diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs index 5d61ca71a..51c2f71aa 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/ISinort.cs @@ -30,6 +30,8 @@ namespace AYA.SlnSinort.WCF [OperationContract] ProyectoNormativoJSON GuardarComentarioProyectoNormativo(ProyectoNormativoJSON model); + [OperationContract] + ProyectoNormativoJSON GuardarEventoProyectoNormativo(ProyectoNormativoJSON model); //[OperationContract] //ProyectoNormativoJSON EliminarConvocatoriaProyectoNormativo(ProyectoNormativoJSON model); #region Adjuntos diff --git a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs index 275401224..317b323a9 100644 --- a/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs +++ b/AYA.SlnSynor/AYA.SlnSynor.WCF/Sinort.svc.cs @@ -134,6 +134,35 @@ namespace AYA.SlnSinort.WCF return model; } + public ProyectoNormativoJSON GuardarEventoProyectoNormativo(ProyectoNormativoJSON model) + { + try + { + if (model.ProyectoNormativo == null) + { + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA; + model.DescripcionRespuesta = "No se encontraron datos del proyecto normativo"; + return model; + } + + if (model.Evento == null) + { + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ADVERTENCIA; + model.DescripcionRespuesta = "No se encontraron datos del nuevo evento"; + return model; + } + + model = new CalendarioDAL().GuardarEvento(model); + + } + catch (Exception ex) + { + log.Error(ex); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + } + return model; + } + //public ProyectoNormativoJSON EliminarConvocatoriaProyectoNormativo(ProyectoNormativoJSON model) //{ // try diff --git a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/PropuestaNormativa/DetallePropuestaNormativa.js b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/PropuestaNormativa/DetallePropuestaNormativa.js index b182ac886..6ebb60337 100644 --- a/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/PropuestaNormativa/DetallePropuestaNormativa.js +++ b/AYA.SlnSynor/AYA.SlnSynor/Sinort-Scripts/PropuestaNormativa/DetallePropuestaNormativa.js @@ -114,9 +114,13 @@ this.getDataModel = function () { $("#btnMostrarCalendario").unbind("click"); $("#btnMostrarCalendario").click(function () { - Calendario(); + Calendario(model.EventosJSON); }); + $("#btnGuardarEvento").unbind("click"); + $("#btnGuardarEvento").click(function () { + GuardarEvento(); + }); $("#txtNombreProyecto").readOnly(); $("#txtPromotorProyecto").readOnly(); @@ -1166,6 +1170,53 @@ function ActualizarUpload() { //Calendario +this.GuardarEvento = function () { + + if (!$("#formEvento").valid()) { + toastr.warning("Ingresar todos los campos que son requeridos."); + return false; + } + + tableDocEvento = $('#tableDocEvento').DataTable(); + var Iddoc; + var data = tableDocEvento + .rows() + .data(); + + $.each(data, function (key, item) { + Iddoc = item[0] + }); + + var uri = SinortWCF + '/api/GuardarEventoProyectoNormativo'; + + model.Evento = { + IdProyectoNormativo: model.ProyectoNormativo.IdProyectoNormativo, + IdDocumento: Iddoc, + Titulo: $("#txtTituloEvento").val(), + Descripcion: $("#txtDescripcionEvento").val(), + FechaInicio: $("#txtInicioEvento").DateFormatWCF(), + FechaFin: $("#txtFinEvento").DateFormatWCF() + } + + AjaxPostData(uri, model, false, true, EventoGuardado, null, null); + +} + +this.EventoGuardado = function (data) { + + if (data.CodigoRespuesta == "EXITOSO") { + model = data; + } + + $("#txtTituloEvento").val(''); + $("#txtDescripcionEvento").val(''); + $('#modalEvento').modal('hide'); + $('#tableDocEvento').DataTable.clear().draw(); + + CargarForo(); + ENDREQUEST(); +} + this.ModalEvento = function (inicio,fin) { $('#modalEvento').modal('show'); @@ -1177,18 +1228,20 @@ this.ModalEvento = function (inicio,fin) { if (fecha != "Invalid date") $("#txtFinEvento").val(fecha); + $("#txtInicioEvento").readOnly(); + $("#txtFinEvento").readOnly(); + } -this.Calendario = function () { +this.Calendario = function (data) { $('#modalCalendario').modal('show'); - $('#calendar').fullCalendar('destroy') + $('#calendar').fullCalendar('destroy'); + $('#calendar').fullCalendar('render'); $('#calendar').fullCalendar({ selectable: true, eventLimit: true, - //dayClick: function (date) { - // alert('clicked ' + date.format()); - //}, + events:data, select: function (startDate, endDate) { ModalEvento(startDate.format(), endDate.format()); } diff --git a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/AYA.SlnSinortModel.DAL.csproj b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/AYA.SlnSinortModel.DAL.csproj index 307416d56..3b947390a 100644 --- a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/AYA.SlnSinortModel.DAL.csproj +++ b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/AYA.SlnSinortModel.DAL.csproj @@ -68,9 +68,9 @@ + - diff --git a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/CalendarioDAL.cs b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/CalendarioDAL.cs new file mode 100644 index 000000000..24f4ef460 --- /dev/null +++ b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/CalendarioDAL.cs @@ -0,0 +1,67 @@ +using Atesa.Utilitarios; +using AYA.SlnSinortModel.Constantes; +using AYA.SlnSinortModel.Entidades; +using AYA.SlnSinortModel.Sinort; +using System; +using System.Collections.Generic; +using System.Data.Entity.Validation; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AYA.SlnSinortModel.DAL.Sinort +{ + public class CalendarioDAL + { + Log log = new Log("CalendarioDAL"); + + public ProyectoNormativoJSON GuardarEvento(ProyectoNormativoJSON model) + { + try + { + using (SinortContex Conn = new SinortContex()) + { + int? Next_id = Conn.Calendario.Max(t => (int?)t.IdCalendario); + model.Evento.IdCalendario = (Next_id == null) ? 1 : Next_id.Value + 1; + model.Evento.UsuarioCreacion = model.AtesaUser; + model.Evento.FechaCreacion = DateTime.Now; + Conn.Calendario.Add(model.Evento); + Conn.SaveChanges(); + Conn.Commit(); + } + + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; + + if (model.ProyectoNormativo.Calendario != null) + model.ProyectoNormativo.Calendario.Add(model.Evento); + + if (model.EventosJSON != null) + { + var json = new EventosJSON() + { + allDay = false, + start = model.Evento.FechaInicio.HasValue ? model.Evento.FechaInicio.Value.ToString() : string.Empty, + end = model.Evento.FechaFin.HasValue ? model.Evento.FechaFin.Value.ToString() : string.Empty, + title = model.Evento.Titulo + }; + + model.EventosJSON.Add(json); + } + + } + catch (DbEntityValidationException ex) + { + log.Error(ex); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + } + catch (Exception ex) + { + log.Error(ex); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.ERROR; + } + + return model; + } + + } +} diff --git a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/ComentariosMatrizDAL.cs b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/ComentariosMatrizDAL.cs deleted file mode 100644 index 3e556aaa7..000000000 --- a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/ComentariosMatrizDAL.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Atesa.Utilitarios; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace AYA.SlnSinortModel.DAL.Sinort -{ - public class ComentariosMatrizDAL - { - Log log = new Log("ComentariosMatrizDAL"); - } -} diff --git a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/ProyectoNormativoDAL.cs b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/ProyectoNormativoDAL.cs index d8a9d0a2f..044f1ade4 100644 --- a/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/ProyectoNormativoDAL.cs +++ b/AYA.SlnSynor/AYA.SlnSynorModel.DAL/Sinort/ProyectoNormativoDAL.cs @@ -89,12 +89,33 @@ namespace AYA.SlnSinortModel.DAL.Sinort using (SinortContex Conn = new SinortContex()) { model.ProyectoNormativo = Conn.ProyectoNormativo - .Include(q=> q.Convocatoria) - .Include(q=> q.ComentariosProyecto) + .Include(q => q.Convocatoria) + .Include(q => q.ComentariosProyecto) + .Include(q => q.Calendario) .Include("Convocatoria.Usuario") .FirstOrDefault(q => q.IdProyectoNormativo == model.ProyectoNormativo.IdProyectoNormativo); + model.CodigoRespuesta = EnumTipoCodigoRespuesta.EXITOSO; } + + if (model.ProyectoNormativo != null && model.ProyectoNormativo.Calendario != null) + { + model.EventosJSON = new List(); + + foreach (var evento in model.ProyectoNormativo.Calendario) + { + var json = new EventosJSON() + { + allDay = false, + start = evento.FechaInicio.HasValue ? evento.FechaInicio.Value.ToString() : string.Empty, + end = evento.FechaFin.HasValue ? evento.FechaFin.Value.ToString() : string.Empty, + title = evento.Titulo + }; + + model.EventosJSON.Add(json); + + } + } } catch (DbEntityValidationException ex) { diff --git a/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/CatalogosJSON.cs b/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/CatalogosJSON.cs index 67d751263..eb51a5c3a 100644 --- a/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/CatalogosJSON.cs +++ b/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/CatalogosJSON.cs @@ -38,9 +38,17 @@ namespace AYA.SlnSinortModel.Entidades { public List ListaRolesUsuarios { get; set; } } - + public class UsuariosAyAJSON : BaseJson { public List ListaUsuariosAyA { get; set; } } + + public class EventosJSON + { + public string title { get; set; } + public string start { get; set; } + public string end { get; set; } + public bool allDay { get; set; } + } } diff --git a/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs b/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs index 484a6c05e..f3e752528 100644 --- a/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs +++ b/AYA.SlnSynor/AYA.SlnSynorModel/Entidades/Json.cs @@ -21,6 +21,8 @@ namespace AYA.SlnSinortModel.Entidades public ComentariosProyecto Comentario { get; set; } public List ProyectosNormativos { get; set; } public List ListaConvocatoria { get; set; } + public Calendario Evento { get; set; } + public List EventosJSON { get; set; } } public class AdjuntosJSON : BaseJson @@ -32,8 +34,8 @@ namespace AYA.SlnSinortModel.Entidades public string Id { get; set; } public string Carpeta { get; set; } public int? IdDocumentoAdjunto { get; set; } - + } - - + + }