376 lines
18 KiB
Plaintext
376 lines
18 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-agrupacion > td {
|
|
padding: 0;
|
|
background: #eef3f7;
|
|
}
|
|
|
|
.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" ChildrenAsTriggers="false">
|
|
<ContentTemplate>
|
|
<sig:Filtros ID="UcFiltros" runat="server"
|
|
OnMostrarFiltros="UcFiltros_MostrarFiltros"
|
|
OnConsultar="UcFiltros_Consultar"
|
|
OnFiltrosChanged="UcFiltros_FiltrosCambiados" />
|
|
<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.">
|
|
<Columns>
|
|
<asp:BoundField DataField="Cliente" HeaderText="Cliente" />
|
|
<asp:BoundField DataField="Tramite" HeaderText="Trámite" />
|
|
<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="FechaInicio" HeaderText="Fecha inicio"
|
|
DataFormatString="{0:dd/MM/yyyy}" />
|
|
<asp:TemplateField HeaderText="Acciones">
|
|
<ItemTemplate>
|
|
<asp:LinkButton ID="BtnEditarEstatus" runat="server"
|
|
CssClass="btn btn-circle btn-sm blue"
|
|
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"
|
|
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"
|
|
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>
|
|
</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">×</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">
|
|
<h4>Acciones pendientes</h4>
|
|
<div class="table-responsive">
|
|
<asp:GridView ID="AccionesPendientesSeguimiento"
|
|
runat="server"
|
|
AutoGenerateColumns="false"
|
|
GridLines="None"
|
|
CssClass="table table-striped table-hover Widthall"
|
|
EmptyDataText="">
|
|
<Columns>
|
|
<asp:BoundField DataField="Descripcion" HeaderText="Acción pendiente" HtmlEncode="true" />
|
|
</Columns>
|
|
</asp:GridView>
|
|
</div>
|
|
</asp:Panel>
|
|
<asp:Literal ID="AvisoPagosSeguimiento" runat="server" />
|
|
</ContentTemplate>
|
|
</asp:UpdatePanel>
|
|
<div class="sig_panel_cuerpo">
|
|
<ajax:TabContainer ID="PestanasSeguimiento"
|
|
runat="server"
|
|
Width="100%"
|
|
AutoPostBack="false"
|
|
CssClass="ajax__tab_xp sig-seguimiento-pestanas">
|
|
<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>
|
|
<ajax:TabPanel ID="PestanaSeguimientoPagos" runat="server" HeaderText="Pagos">
|
|
<ContentTemplate>
|
|
<sig:PagosSolicitud ID="UcPagosSolicitud" runat="server" OnCambiado="PagosSeguimiento_Cambiados" />
|
|
</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>
|