--Actualizar eventos desde diagrama de grantt

This commit is contained in:
2024-07-06 13:40:59 -07:00
parent 21a3b6fdc2
commit 40f11382c3
3 changed files with 181 additions and 141 deletions

View File

@@ -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

View File

@@ -94,10 +94,10 @@
<%-- Cliente --%>
<label class="col-md-1">Cliente</label>
<div class="col-md-2">
<ADS:Dropdownlost CssClassDdl="select2me" ID="DdlCliente" Width="86%"
<ADS:Dropdownlost CssClassDdl="select2me" ID="DdlCliente" Width="100%"
data-metodo="getcliente"
runat="server" DataTextField="NombreComercial" DataValueField="CveCliente"
CssStyle="width: 86%;"
CssStyle="width: 100%;"
UsaWebService="true" Enabled="false"></ADS:Dropdownlost>
</div>
<%-- Estatus --%>
@@ -116,7 +116,7 @@
<div class="portlet-body row" style="display: none">
<%-- Centro de Costos --%>
<label class="col-md-1 truncate ">Centro de Costos</label>
<div class="col-md-2">
<div class="col-md-3">
<asp:DropDownList ID="DdlSubProyectos" data-text="Todos" AppendDataBoundItems="true"
DataTextField="SubProyecto" DataValueField="CveSubProyecto" CssClass="form-control ddlFiltros input-sm select2me Widthall"
Style="width: 100%;" runat="server">
@@ -186,7 +186,7 @@
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
@@ -500,7 +500,7 @@
</div>
<asp:HiddenField runat="server" ID="HidModClienteNombre" ClientIDMode="Static" />
<asp:HiddenField runat="server" ID="HidModCveCliente" ClientIDMode="Static" />
<asp:HiddenField runat="server" ID="HidCurrentMonth" ClientIDMode="Static" Value="-1" />
<asp:HiddenField runat="server" ID="HidCurrentYear" ClientIDMode="Static" Value="-1" />
</asp:Content>
@@ -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;
}
</script>

View File

@@ -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"))