diff --git a/Ashx/CargaEventos.ashx b/Ashx/CargaEventos.ashx index ed78666f4..42e76b85e 100644 --- a/Ashx/CargaEventos.ashx +++ b/Ashx/CargaEventos.ashx @@ -1,4 +1,4 @@ -<%@ WebHandler Language="VB" Class="CargaEventos" %> +<%@ WebHandler Language="VB" Class="CargaEventos" %> Option Explicit Off Option Strict On @@ -488,7 +488,13 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState DT_SubProyectos.Columns.Add("backgroundColor") DT_EstatusOS.Columns.Add("", GetType(Integer)) - If ObjContratos.GetContratos(-1, usuarioActual_.CveEmpresa, TipoContrato:=34) Then + Dim cveContrato As Integer = -1 + + If context.Request("cveContrato") IsNot Nothing Then + cveContrato = context.Request("cveContrato").ToEntero() + End If + + If ObjContratos.GetContratos(cveContrato, usuarioActual_.CveEmpresa, TipoContrato:=34) Then If ObjContratos.DtResultados.Rows.Count > 0 Then diff --git a/Transportes/RepContratosCalendario.aspx b/Transportes/RepContratosCalendario.aspx index 04147c7a9..bd09289db 100644 --- a/Transportes/RepContratosCalendario.aspx +++ b/Transportes/RepContratosCalendario.aspx @@ -94,10 +94,10 @@ <%-- Cliente --%>
-
<%-- Estatus --%> @@ -116,7 +116,7 @@ @@ -500,7 +500,7 @@ - + @@ -627,7 +627,7 @@ series.columns.template.setAll({ templateField: "columnSettings", strokeOpacity: 0, - tooltipText: "{category}: {openValueX} - {valueX}" + tooltipText: "UNIDAD: {unidad} -- CONTRATO: {contrato} -- CÓDIGO: {category} -- DURACIÓN: {openValueX} - {valueX}" }); series.data.processor = am5.DataProcessor.new(root, { @@ -655,12 +655,27 @@ chart.set("scrollbarY", scrollbarY); + + //MOSTRAR MODAL DE CONTRATO AL HACER CLICK + series.columns.template.events.on("click", e => { + let cveContrato = e.target.dataItem.dataContext.cveContrato; + + $('#CveContrato').val(cveContrato); + + let url = '/Ashx/CargaEventos.ashx?METODO=contrato_transportes' ; + let parametros = '&cveContrato=' + cveContrato +'&U=' + '<%= UsuarioActual.CveUsuario %>' + '&E='+ '<%= UsuarioActual.CveEmpresa %>'+ '&tipoVista=' + '<%= RBTipoVista.Text %>' + '&CveUsuarioPara:' + $('#DdlTecnico').val(); + '&CveSubProyecto:' + $('#DdlSubProyecto').val(); + + fetch(url + parametros).then(response => response.json()).then(json => { + console.log(json); + updateEvent(json[0],null,false); + }).catch(err => console.log('Solicitud fallida', err)); + }); series.events.on("datavalidated", function (ev) { let cellSize = 45; if (TipoVista == 1) { - cellSize = 60; + cellSize = 60; } //let series = ev.target; //let chart = series.chart; @@ -671,7 +686,20 @@ // Set it on chart's container chart.root.dom.style.height = chartHeight + "px"; + + //ev.target.get("xAxis").zoomToValues(100, 200); }); + + //series.events.once("datavalidated", function(ev) { + + //}); + + //chart.events.on("ready", function () { + // dateAxis.zoomToDates( + // new Date(2024, 7, 4), + // new Date(2024, 7, 15) + // ); + //}) //root.language.setTranslationAny("May", "Mayo"); // Make stuff animate on load @@ -705,7 +733,7 @@ function selectDate(start, end, allDay) { } - function updateEvent(event, element) { + function updateEvent(event, element, esCalendario = true) { $('#<%=TxtCantidadPasajeros.ClientID%>').val(event.CantidadPasajeros); $('#<%=TxtFolio.ClientID%>').val(event.NumeroContrato); @@ -714,8 +742,12 @@ $('#<%=TxtUbicacion.ClientID%>').val(event.NombreAcercamiento); - - $('#<%=TxtFechaSalida.ClientID%>').val(formatearFechaISO(event.start._i)); + if (esCalendario) { + $('#<%=TxtFechaSalida.ClientID%>').val(formatearFechaISO(event.start._i)); + }else{ + $('#<%=TxtFechaSalida.ClientID%>').val(formatearFechaISO(event.start)); + } + $('#<%=TxtFechaRegreso.ClientID%>').val(formatearFechaISO(event.FechaFinal)); $('#<%=DdlClientes.ClientID%>').val(event.CveCliente); @@ -737,142 +769,142 @@ $('#HidModCveCliente').val(event.CveCliente); - $('#<%=BtnModal.ClientID%>').click(); + $('#<%=BtnModal.ClientID%>').click(); } - function formatearFechaISO(fechaISO) { - let fecha = new Date(fechaISO); + function formatearFechaISO(fechaISO) { + let fecha = new Date(fechaISO); - // Formatear la fecha en DD/MM/YYYY - let dia = fecha.getDate().toString().padStart(2, '0'); - let mes = (fecha.getMonth() + 1).toString().padStart(2, '0'); // getMonth() devuelve mes de 0-11 - let año = fecha.getFullYear(); + // Formatear la fecha en DD/MM/YYYY + let dia = fecha.getDate().toString().padStart(2, '0'); + let mes = (fecha.getMonth() + 1).toString().padStart(2, '0'); // getMonth() devuelve mes de 0-11 + let año = fecha.getFullYear(); - // Formatear la hora en formato 12 horas con AM/PM - let horas = fecha.getHours(); - let minutos = fecha.getMinutes().toString().padStart(2, '0'); - let periodo = 'a. m.'; - if (horas >= 12) { - periodo = 'p. m.'; - horas = horas > 12 ? horas - 12 : horas; // Convertir hora de formato 24 a 12 horas - } - if (horas === 0) horas = 12; // Medianoche se muestra como 12 a.m. - horas = horas.toString().padStart(2, '0'); + // Formatear la hora en formato 12 horas con AM/PM + let horas = fecha.getHours(); + let minutos = fecha.getMinutes().toString().padStart(2, '0'); + let periodo = 'a. m.'; + if (horas >= 12) { + periodo = 'p. m.'; + horas = horas > 12 ? horas - 12 : horas; // Convertir hora de formato 24 a 12 horas + } + if (horas === 0) horas = 12; // Medianoche se muestra como 12 a.m. + horas = horas.toString().padStart(2, '0'); - // Combinar la fecha y la hora - return `${dia}/${mes}/${año} ${horas}:${minutos}:00 ${periodo}`; - } - - function RadionButtonSelectedValueSet(name, SelectdValue) { - $('input[name="' + name + '"][value="' + SelectdValue + '"]').prop('checked', true); - } - - function updateEventOnDropResize(event, allDay) { - var eventToUpdate = { - id: event.id, - start: event.start - }; - - if (event.end === null) { - eventToUpdate.end = eventToUpdate.start; - } - else { - eventToUpdate.end = event.end; - } - var endDate; - if (!event.allDay) { - endDate = new Date(eventToUpdate.end + 60 * 60000); - endDate = endDate.toJSON(); - } - else { - endDate = eventToUpdate.end.toJSON(); + // Combinar la fecha y la hora + return `${dia}/${mes}/${año} ${horas}:${minutos}:00 ${periodo}`; } - eventToUpdate.start = eventToUpdate.start.toJSON(); - eventToUpdate.end = eventToUpdate.end.toJSON(); //endDate; - eventToUpdate.allDay = event.allDay; + function RadionButtonSelectedValueSet(name, SelectdValue) { + $('input[name="' + name + '"][value="' + SelectdValue + '"]').prop('checked', true); + } - PageMethods.ActualizaEvento(eventToUpdate, UpdateTimeSuccess); - } + function updateEventOnDropResize(event, allDay) { + var eventToUpdate = { + id: event.id, + start: event.start + }; - function eventDropped(event, dayDelta, minuteDelta, allDay, revertFunc) { - if ($(this).data("qtip")) $(this).qtip("destroy"); - updateEventOnDropResize(event); - } + if (event.end === null) { + eventToUpdate.end = eventToUpdate.start; + } + else { + eventToUpdate.end = event.end; + } + var endDate; + if (!event.allDay) { + endDate = new Date(eventToUpdate.end + 60 * 60000); + endDate = endDate.toJSON(); + } + else { + endDate = eventToUpdate.end.toJSON(); + } - function eventResized(event, dayDelta, minuteDelta, revertFunc) { - if ($(this).data("qtip")) $(this).qtip("destroy"); + eventToUpdate.start = eventToUpdate.start.toJSON(); + eventToUpdate.end = eventToUpdate.end.toJSON(); //endDate; + eventToUpdate.allDay = event.allDay; - updateEventOnDropResize(event); - } + PageMethods.ActualizaEvento(eventToUpdate, UpdateTimeSuccess); + } - function Calendario(mes = -1, anio = -1) { + function eventDropped(event, dayDelta, minuteDelta, allDay, revertFunc) { + if ($(this).data("qtip")) $(this).qtip("destroy"); + updateEventOnDropResize(event); + } + + function eventResized(event, dayDelta, minuteDelta, revertFunc) { + if ($(this).data("qtip")) $(this).qtip("destroy"); + + updateEventOnDropResize(event); + } + + function Calendario(mes = -1, anio = -1) { - let fechaActual = new Date(); - if (mes === -1) { - mes = fechaActual.getMonth() + 1; - } - if (anio === -1) { - anio = fechaActual.getFullYear(); - } + let fechaActual = new Date(); + if (mes === -1) { + mes = fechaActual.getMonth() + 1; + } + if (anio === -1) { + anio = fechaActual.getFullYear(); + } - let mesFormateado = ('0' + mes).slice(-2); - let fechaInicio = `${anio}-${mesFormateado}-01`; + let mesFormateado = ('0' + mes).slice(-2); + let fechaInicio = `${anio}-${mesFormateado}-01`; - var date = new Date(); - var d = date.getDate(); - var m = date.getMonth(); - var y = date.getFullYear(); - var h = {}; + var date = new Date(); + var d = date.getDate(); + var m = date.getMonth(); + var y = date.getFullYear(); + var h = {}; - //alert(fechaInicio); - if ($('#calendar').width() <= 400) { - $('#calendar').addClass("mobile"); - h = { - left: 'title, prev, next', - center: '', - right: 'today,month,agendaWeek,agendaDay' - }; - } else { - $('#calendar').removeClass("mobile"); + //alert(fechaInicio); + if ($('#calendar').width() <= 400) { + $('#calendar').addClass("mobile"); + h = { + left: 'title, prev, next', + center: '', + right: 'today,month,agendaWeek,agendaDay' + }; + } else { + $('#calendar').removeClass("mobile"); - h = { - left: 'title', - center: '', - right: 'prev,next,today,month,agendaWeek,agendaDay' - }; - } + h = { + left: 'title', + center: '', + right: 'prev,next,today,month,agendaWeek,agendaDay' + }; + } - $('#calendar').fullCalendar('destroy'); - $('#calendar').fullCalendar({ - defaultDate: fechaInicio, - header: h, - monthNames: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], - monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'], - dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'], - dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb'], - buttonText: { - today: 'Hoy', - week: 'Semana', - month: 'Mes', - day: 'Día' - }, - eventClick: updateEvent, - selectable: true, - selectHelper: true, - select: selectDate, - editable: true, - minTime: "00:00:00", - maxTime: "24:00:00", - events: { - url: '/Ashx/CargaEventos.ashx', - type: 'GET', - data: { - U: ' <%= UsuarioActual.CveUsuario %>', + $('#calendar').fullCalendar('destroy'); + $('#calendar').fullCalendar({ + defaultDate: fechaInicio, + header: h, + monthNames: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"], + monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'], + dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'], + dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb'], + buttonText: { + today: 'Hoy', + week: 'Semana', + month: 'Mes', + day: 'Día' + }, + eventClick: updateEvent, + selectable: true, + selectHelper: true, + select: selectDate, + editable: true, + minTime: "00:00:00", + maxTime: "24:00:00", + events: { + url: '/Ashx/CargaEventos.ashx', + type: 'GET', + data: { + U: ' <%= UsuarioActual.CveUsuario %>', E: '<%= UsuarioActual.CveEmpresa %>', tipoVista: '<%= RBTipoVista.Text %>', METODO: 'contrato_transportes', @@ -896,24 +928,24 @@ }); } - function obtenerFechaInicio(mes = -1, anio = -1) { - let fechaActual = new Date(); + function obtenerFechaInicio(mes = -1, anio = -1) { + let fechaActual = new Date(); - if (mes === -1) { - mes = fechaActual.getMonth() + 1; // getMonth() es base 0, así que se suma 1 - } - if (anio === -1) { - anio = fechaActual.getFullYear(); - } + if (mes === -1) { + mes = fechaActual.getMonth() + 1; // getMonth() es base 0, así que se suma 1 + } + if (anio === -1) { + anio = fechaActual.getFullYear(); + } - let mesFormateado = ('0' + mes).slice(-2); + let mesFormateado = ('0' + mes).slice(-2); - let fechaInicio = `${anio}-${mesFormateado}-01`; + let fechaInicio = `${anio}-${mesFormateado}-01`; - return fechaInicio; - } + return fechaInicio; + } diff --git a/Transportes/RepContratosCalendario.aspx.vb b/Transportes/RepContratosCalendario.aspx.vb index 5695af9fd..8ab2c39c0 100644 --- a/Transportes/RepContratosCalendario.aspx.vb +++ b/Transportes/RepContratosCalendario.aspx.vb @@ -32,8 +32,8 @@ Partial Class RepContratosCalendario Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then - txtFechaI.Text = DateTime.Now.AddMonths(-1).ToShortDateString - txtFechaF.Text = DateTime.Now.AddDays(7).ToShortDateString + txtFechaI.Text = DateTime.Now.ToShortDateString + txtFechaF.Text = DateTime.Now.AddMonths(1).ToShortDateString InicializaCombos() InicializaCalendar() CargaDatos() @@ -85,7 +85,9 @@ Partial Class RepContratosCalendario New JProperty("columnSettings", New JObject( New JProperty("fill", String.Format("#{0:X6}", random.Next(16777216))) )), - New JProperty("task", Row("NombreAF")) + New JProperty("unidad", Row("NombreAF")), + New JProperty("cveContrato", Row("CveContrato")), + New JProperty("contrato", Row("NumeroContrato")) ) jsonData.Add(obj) strAF.AppendFormat("{0},", Row("CveAF"))