Files
Jorge Luis caudillo esparza da418ce20c color de tramite por depatamento
2026-10-24 16:13:28 -07:00

391 lines
22 KiB
Plaintext

<%@ Page Title="Trámites" Language="C#" MasterPageFile="~/Site.master"
AutoEventWireup="true" CodeFile="Tramites.aspx.cs"
Inherits="SIG.Web.Pages.Desarrolladores.Tramites" %>
<asp:Content ID="ContenidoEncabezado" ContentPlaceHolderID="H" runat="server">
<style>.sig-tablero-tramites {
background: #fff;
border: 1px solid #e7ecf1;
padding: 12px;
}
.sig-tablero-tramites tr[data-nivel="1"] > td:first-child {
border-left: 4px solid #fff;
}
.sig-tablero-tramites tr.sig-proceso-1 > td:first-child {
border-left-color: #89c4f4;
}
.sig-tablero-tramites tr.sig-proceso-2 > td:first-child {
border-left-color: #d9534f;
}
.sig-tablero-tramites tr.sig-proceso-3 > td:first-child,
.sig-tablero-tramites tr.sig-proceso-4 > td:first-child {
border-left-color: #3c763d;
}
.sig-tablero-tramites tr.sig-proceso-4 > td {
background-color: #dff0d8;
}
.sig-tablero-tramites .sig-tramites-columna-grupo {
display: none;
}
.sig-tablero-tramites .sig-tramites-agrupacion {
position: relative;
height: 42px;
}
.sig-tablero-tramites .sig-tramites-agrupacion > td.sig-tramites-columna-grupo {
display: block;
position: absolute;
left: 0;
right: 0;
top: 0;
min-height: 42px;
padding: 0;
background: #eef3f7;
box-sizing: border-box;
}
.sig-tablero-tramites .sig-tramites-agrupacion > td.sig-tramites-columna-normal {
display: none;
}
.sig-tramites-alternar-grupo {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding: 12px;
border: 0;
background: transparent;
color: #34495e;
font-weight: 600;
text-align: left;
}
.sig-tramites-alternar-grupo:focus {
outline: 2px solid #3598dc;
outline-offset: -2px;
}
.sig-tablero-tramites .sig-tramites-fila-oculta {
display: none;
}
.sig-tramites-comentario {
white-space: pre-wrap;
overflow-wrap: anywhere;
}
</style>
</asp:Content>
<asp:Content ID="ContenidoPrincipal" ContentPlaceHolderID="C" runat="server">
<asp:UpdatePanel ID="UpTablero" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<sig:Filtros ID="UcFiltros" runat="server" OnMostrarFiltros="UcFiltros_MostrarFiltros"
OnConsultar="UcFiltros_Consultar" OnFiltrosChanged="UcFiltros_FiltrosCambiados" />
<div id="PortletTramites" runat="server" class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption">
Trámites
</div>
<div class="tools">
<a href="javascript:;" class="collapse" title="Ocultar o mostrar contenido" aria-label="Ocultar o mostrar contenido">
</a>
</div>
<asp:Panel ID="PanelFiltroDepartamento" runat="server" CssClass="pull-right" Style="min-width: 180px; margin-right: 12px;">
<asp:DropDownList ID="DdlDepartamentoTramites" runat="server" CssClass="form-control input-sm"
AutoPostBack="true" CausesValidation="false" ToolTip="Filtrar trámites por departamento"
OnSelectedIndexChanged="DdlDepartamentoTramites_Cambio" />
</asp:Panel>
<div id="BuscadorTramites" runat="server" ClientIDMode="Static" class="portlet-buscador">
</div>
</div>
<div class="portlet-body">
<div class="table-responsive sig-tablero-tramites">
<asp:GridView ID="GvTramites" runat="server" AutoGenerateColumns="false" EnableViewState="false"
DataKeyNames="CveSolicitud,Nivel" GridLines="None" CssClass="table table-hover Widthall filtrosig scrollsig"
data-scrollmargintop="350" OnRowDataBound="GvTramites_FilaEnlazada" OnRowCommand="GvTramites_Comando"
EmptyDataText="No hay solicitudes para los filtros seleccionados." data-id-container="BuscadorTramites">
<Columns>
<asp:TemplateField HeaderStyle-CssClass="sig-tramites-columna-grupo" ItemStyle-CssClass="sig-tramites-columna-grupo">
<ItemTemplate>
<button type="button" class="sig-tramites-alternar-grupo" aria-expanded="true">
<span>
<%#: Eval("Agrupacion") %>
</span>
<i class="fa fa-chevron-up" aria-hidden="true">
</i>
</button>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Cliente" HeaderText="Cliente" />
<asp:TemplateField HeaderText="Trámite">
<ItemTemplate>
<asp:Label ID="EtiquetaTipoTramite" runat="server" Text='<%#: Eval("Tramite") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Fraccionamiento · Etapa">
<ItemTemplate>
<asp:HyperLink ID="EnlaceFraccionamiento" runat="server" ToolTip="Ver detalle del fraccionamiento">
<asp:Literal ID="NombreFraccionamientoEtapa" runat="server" Mode="Encode" />
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Avance" HeaderText="Avance" DataFormatString="{0:0.##} %" />
<asp:BoundField DataField="NombreEstatusProceso" HeaderText="Proceso" />
<asp:BoundField DataField="Estatus" HeaderText="Estatus" />
<asp:BoundField DataField="FechaApertura" HeaderText="Fecha apertura" DataFormatString="{0:dd/MM/yyyy}" />
<asp:BoundField DataField="FechaEnvioARevision" HeaderText="Fecha inicio" DataFormatString="{0:dd/MM/yyyy}" />
<asp:TemplateField HeaderText="Acciones" HeaderStyle-CssClass="sig-col_acciones" ItemStyle-CssClass="sig-col_acciones">
<ItemTemplate>
<asp:LinkButton ID="BtnEditarEstatus" runat="server" CssClass="btn btn-circle btn-sm blue btn-sm-sig"
CausesValidation="false" CommandName="EditarEstatus" ToolTip="Editar estatus" aria-label="Editar estatus">
<i class="fa fa-pencil" aria-hidden="true">
</i>
</asp:LinkButton>
<asp:LinkButton ID="BtnDocumentos" runat="server" CssClass="btn btn-circle btn-sm blue btn-sm-sig"
CausesValidation="false" CommandName="Documentos" ToolTip="Documentos" aria-label="Documentos">
<i class="fa fa-folder-open-o" aria-hidden="true">
</i>
</asp:LinkButton>
<asp:LinkButton ID="BtnComentarios" runat="server" CssClass="btn btn-circle btn-sm blue btn-sm-sig"
CausesValidation="false" CommandName="Comentarios" ToolTip="Comentarios" aria-label="Comentarios">
<i class="fa fa-comment-o" aria-hidden="true">
</i>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdateProgress ID="AvanceTablero" runat="server" DisplayAfter="250">
<ProgressTemplate>
<div class="text-center">
<i class="fa fa-circle-o-notch fa-spin" aria-hidden="true">
</i>
Consultando trámites...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<div id="ModalFiltrosTramites" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="TituloFiltrosTramites">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpFiltros" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Cerrar">
&times;
</button>
<h4 id="TituloFiltrosTramites" class="modal-title">
Filtros
</h4>
</div>
<div class="modal-body sig-filtros-estatus">
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="DdlAgrupacion" Text="Agrupación" />
<asp:DropDownList ID="DdlAgrupacion" runat="server" CssClass="form-control select2me" Width="100%" />
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="DdlFraccionamiento" Text="Fraccionamiento" />
<asp:DropDownList ID="DdlFraccionamiento" runat="server" CssClass="form-control select2me" Width="100%" />
</div>
<div class="form-group">
<asp:Label runat="server" AssociatedControlID="LstEstatus" Text="Estatus de los trámites" />
<asp:ListBox ID="LstEstatus" runat="server" SelectionMode="Multiple" Rows="7" CssClass="form-control select2me sig-estatus-seleccionados" Width="100%" />
</div>
<div class="form-group">
<asp:CheckBox ID="ChkMostrarAutorizados" runat="server" CssClass="sig-mostrar-autorizados" Text=" Mostrar autorizados" />
<asp:CheckBox ID="ChkMostrarCancelados" runat="server" CssClass="sig-mostrar-cancelados" Text=" Mostrar cancelados" />
</div>
<div class="form-group">
<asp:CheckBox ID="ChkSoloActivos" runat="server" Checked="true" Text=" Solo activos" />
</div>
<div id="CampoSoloBloqueados" runat="server" class="form-group">
<asp:CheckBox ID="ChkSoloBloqueados" runat="server" Text=" Solo bloqueados" />
<p class="help-block">
El filtro de bloqueados está pendiente de habilitar.
</p>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn default" data-dismiss="modal">
Cancelar
</button>
<asp:Button ID="BtnAplicarFiltros" runat="server" Text="Aplicar filtros" CssClass="btn blue" CausesValidation="false" OnClick="BtnAplicarFiltros_Click" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<asp:Panel ID="PanelSeguimiento" runat="server" CssClass="sig_panel_lateral sig_panel_derecho" role="dialog"
aria-modal="true" aria-hidden="true" tabindex="-1" aria-label="Seguimiento de solicitud">
<div class="sig_panel_contenido">
<asp:UpdatePanel ID="UpEncabezadoSeguimiento" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<div class="sig_panel_cabecera">
<div>
<h4>
<asp:Literal ID="TituloSeguimiento" runat="server" Mode="Encode" />
</h4>
<p>
<asp:HyperLink ID="EnlaceFraccionamientoSeguimiento" runat="server" ToolTip="Ver detalle del fraccionamiento">
<asp:Literal ID="NombreFraccionamientoEtapaSeguimiento" runat="server" Mode="Encode" />
</asp:HyperLink>
</p>
</div>
<button type="button" class="btn default" data-sig-panel-cerrar="" aria-label="Cerrar seguimiento">
Cerrar
</button>
</div>
<asp:Panel ID="SeccionAccionesPendientesSeguimiento" runat="server" CssClass="sig-seguimiento-seccion" Visible="false">
<div id="PortletAccionesPendientesSeguimiento" runat="server" class="portlet light xspadding bordered">
<div class="portlet-title">
<div class="caption">
Acciones pendientes
</div>
<div class="tools">
<a href="javascript:;" class="collapse" title="Ocultar o mostrar contenido" aria-label="Ocultar o mostrar contenido">
</a>
</div>
<div id="BuscadorAccionesPendientesSeguimiento" runat="server" ClientIDMode="Static" class="portlet-buscador">
</div>
</div>
<div class="portlet-body">
<div class="table-responsive">
<asp:GridView ID="AccionesPendientesSeguimiento" runat="server" AutoGenerateColumns="false" GridLines="None"
CssClass="table table-striped table-hover Widthall filtrosig" EmptyDataText=""
data-id-container="BuscadorAccionesPendientesSeguimiento">
<Columns>
<asp:BoundField DataField="Descripcion" HeaderText="Acción pendiente" HtmlEncode="true" />
</Columns>
</asp:GridView>
</div>
</div>
</div>
</asp:Panel>
</ContentTemplate>
</asp:UpdatePanel>
<div class="sig_panel_cuerpo">
<ajax:TabContainer ID="PestanasSeguimiento" runat="server" Width="100%" AutoPostBack="false" >
<Tabs>
<ajax:TabPanel ID="PestanaSeguimientoEstatus" runat="server" HeaderText="Estatus">
<ContentTemplate>
<sig:EstatusSolicitud ID="UcEstatusSolicitud" runat="server" OnCambiado="EstatusSeguimiento_Cambiado"
OnSeleccionCambiada="EstatusSeguimiento_SeleccionCambiada"
OnRequisitosPendientes="EstatusSeguimiento_RequisitosPendientes" />
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="PestanaSeguimientoCondiciones" runat="server" HeaderText="Condiciones">
<ContentTemplate>
<sig:CondicionesSolicitud ID="UcCondicionesSolicitud" runat="server" OnCambiado="CondicionesSeguimiento_Cambiado" />
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="PestanaSeguimientoDocumentos" runat="server" HeaderText="Documentos">
<ContentTemplate>
<sig:DocumentosSolicitud ID="UcDocumentosSolicitud" runat="server" OnCambiado="DocumentosSeguimiento_Cambiados"
OnMostrarSolicitado="DocumentosSeguimiento_MostrarSolicitado"/>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="PestanaSeguimientoComentarios" runat="server" HeaderText="Comentarios">
<ContentTemplate>
<sig:ComentariosSolicitud ID="UcComentariosSolicitud" runat="server" OnCambiado="ComentariosSeguimiento_Cambiado"
OnMostrarSolicitado="ComentariosSeguimiento_MostrarSolicitado" />
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="PestanaSeguimientoSupervisiones" runat="server" HeaderText="Supervisiones">
<ContentTemplate>
<sig:SupervisionesEtapa ID="UcSupervisionesSolicitud" runat="server" />
</ContentTemplate>
</ajax:TabPanel>
</Tabs>
</ajax:TabContainer>
</div>
</div>
</asp:Panel>
</asp:Content>
<asp:Content ID="ContenidoScripts" ContentPlaceHolderID="J" runat="server">
<script >
(function (ventana, documento, $) {
"use strict";
ventana.SIGTableroTramites = ventana.SIGTableroTramites || {};
ventana.SIGTableroTramites.mostrarModal = function (identificadorModal) {
$(documento.getElementById(identificadorModal)).modal("show");
};
ventana.SIGTableroTramites.ocultarModal = function (identificadorModal) {
$(documento.getElementById(identificadorModal)).modal("hide");
};
// La delegación conserva el comportamiento al reemplazar el UpdatePanel.
if (ventana.SIG_EVENTOS_TABLERO_TRAMITES_REGISTRADOS === true) {
return;
}
$(documento).on("click.sigTableroTramites", ".sig-tramites-alternar-grupo", function () {
var boton = $(this);
var tabla = boton.closest("table");
var cveAgrupacion = boton.closest("tr").attr("data-cve-agrupacion");
var expandir = boton.attr("aria-expanded") !== "true";
tabla.find('tr[data-nivel="1"]').filter(function () {
return $(this).attr("data-cve-agrupacion") === cveAgrupacion;
}).toggleClass("sig-tramites-fila-oculta", !expandir);
boton.attr("aria-expanded", expandir ? "true" : "false");
boton.find(".fa")
.toggleClass("fa-chevron-up", expandir)
.toggleClass("fa-chevron-down", !expandir);
});
// Al agregar una selección se sincroniza su check. Las eliminaciones son
// independientes: no se fuerza nuevamente la opción que el usuario quitó.
$(documento).on("change.sigTableroTramites", ".sig-estatus-seleccionados", function () {
var lista = $(this);
var contenedor = lista.closest(".sig-filtros-estatus");
var anteriores = (lista.attr("data-sig-estatus-anteriores") || "").split(",");
["Autorizado", "Cancelado"].forEach(function (codigo) {
var seleccionada = lista.find("option:selected").filter(function () {
return $(this).attr("data-codigo-estatus") === codigo &&
anteriores.indexOf(this.value) < 0;
}).length > 0;
if (seleccionada) {
var clase = codigo === "Autorizado" ? ".sig-mostrar-autorizados" :
".sig-mostrar-cancelados";
contenedor.find(clase + " input").prop("checked", true);
}
});
lista.attr("data-sig-estatus-anteriores", (lista.val() || []).join(","));
if ($.uniform && $.uniform.update) {
$.uniform.update(contenedor.find('input[type="checkbox"]'));
}
});
$(documento).on("change.sigTableroTramites",
".sig-mostrar-autorizados input, .sig-mostrar-cancelados input", function () {
if (!this.checked) {
return;
}
var casilla = $(this);
var codigo = casilla.closest(".sig-mostrar-autorizados").length ?
"Autorizado" : "Cancelado";
var lista = casilla.closest(".sig-filtros-estatus").find(".sig-estatus-seleccionados");
lista.find("option").filter(function () {
return $(this).attr("data-codigo-estatus") === codigo;
}).prop("selected", true);
lista.trigger("change");
});
ventana.SIG_EVENTOS_TABLERO_TRAMITES_REGISTRADOS = true;
}(window, document, jQuery));
</script>
</asp:Content>