Files
Plataforma-de-desarrolladores/SIG.Web/Pages/Fraccionamientos/FraccionamientoDetalle.aspx
Jorge Luis caudillo esparza da4af4cb2a orden etapas
2026-08-18 03:22:46 -07:00

1498 lines
76 KiB
Plaintext

<%@ Page Title="Detalle de fraccionamiento"
Language="C#"
MasterPageFile="~/Site.master"
AutoEventWireup="true"
CodeFile="FraccionamientoDetalle.aspx.cs"
Inherits="SIG.Web.Pages.Fraccionamientos.FraccionamientoDetalle" %>
<asp:Content ID="ContentHead" ContentPlaceHolderID="H" runat="server">
<link href='<%= ResolveUrl("~/Styles/FraccionamientoDetalle.css?v=20260814-5") %>'
rel="stylesheet"
type="text/css" />
<link href='<%= ResolveUrl("~/Styles/CatalogosTramites.css") %>'
rel="stylesheet"
type="text/css" />
</asp:Content>
<asp:Content ID="ContentActions" ContentPlaceHolderID="A" runat="server">
<li>
<asp:HyperLink ID="LnkBack"
runat="server"
NavigateUrl="~/Pages/Fraccionamientos/Fraccionamientos.aspx">
<i class="fa fa-arrow-left"></i>
Volver al catálogo
</asp:HyperLink>
</li>
<li>
<asp:LinkButton ID="BtnEditStageProgress"
runat="server"
CausesValidation="false"
OnClick="BtnEditStageProgress_Click">
<i class="fa fa-line-chart"></i>
Editar avance
</asp:LinkButton>
</li>
</asp:Content>
<asp:Content ID="ContentMain" ContentPlaceHolderID="C" runat="server">
<asp:UpdatePanel ID="UpSummary"
runat="server"
UpdateMode="Conditional"
ChildrenAsTriggers="false">
<ContentTemplate>
<section class="fraction-summary-card">
<div class="fraction-summary-heading">
<div class="fraction-title-group">
<div class="fraction-building-icon" aria-hidden="true">
<i class="fa fa-building-o"></i>
</div>
<div class="fraction-title-copy">
<div class="fraction-title-row">
<h2>
<asp:Literal ID="LitDevelopmentName" runat="server" />
</h2>
<asp:Label ID="LblDevelopmentActive"
runat="server"
CssClass="fraction-status-badge" />
</div>
</div>
</div>
<div class="fraction-summary-actions">
<button type="button"
class="btn blue fraction-edit-button"
onclick="window.SIGDetail.showEdit();">
<i class="fa fa-pencil"></i>
Editar fraccionamiento
</button>
<div class="btn-group">
<button type="button"
class="btn default dropdown-toggle fraction-options-button"
data-toggle="dropdown"
aria-haspopup="true"
aria-expanded="false"
title="Más opciones">
<i class="fa fa-ellipsis-h"></i>
<span class="caret"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li>
<asp:LinkButton ID="BtnDelete"
runat="server"
CausesValidation="false"
OnClick="BtnDelete_Click"
OnClientClick="return window.SIGAlerts.confirmPostBack(this, '¿Desea eliminar el fraccionamiento y sus etapas?');">
<i class="fa fa-trash-o"></i>
Eliminar fraccionamiento
</asp:LinkButton>
</li>
</ul>
</div>
</div>
</div>
<div class="fraction-summary-data">
<div class="fraction-data-item">
<span class="fraction-data-label">Cliente</span>
<span class="fraction-data-value">
<asp:Literal ID="LitSummaryClient" runat="server" />
</span>
</div>
<div class="fraction-data-item">
<span class="fraction-data-label">Hectáreas</span>
<span class="fraction-data-value">
<asp:Literal ID="LitSummaryHectares" runat="server" />
</span>
</div>
<div class="fraction-data-item">
<span class="fraction-data-label">Ubicación</span>
<span class="fraction-data-value">
<asp:Literal ID="LitSummaryLocation" runat="server" />
</span>
</div>
<div class="fraction-data-item fraction-data-icon-item">
<i class="fa fa-calendar"></i>
<div>
<span class="fraction-data-label">Apertura</span>
<span class="fraction-data-value">
<asp:Literal ID="LitSummaryOpeningDate" runat="server" />
</span>
</div>
</div>
<div class="fraction-data-item fraction-data-icon-item">
<i class="fa fa-user"></i>
<div>
<span class="fraction-data-label">Vendedor</span>
<span class="fraction-data-value">—</span>
</div>
</div>
<div class="fraction-data-item fraction-data-icon-item">
<i class="fa fa-bullhorn"></i>
<div>
<span class="fraction-data-label">Medio de captación</span>
<span class="fraction-data-value">—</span>
</div>
</div>
<div class="fraction-data-item fraction-progress-data-item">
<span class="fraction-data-label">Avance global</span>
<div class="fraction-summary-progress">
<strong class="fraction-progress-value">
<asp:Literal ID="LitSummaryGlobalProgress"
runat="server" />
</strong>
<div class="progress fraction-progress-track">
<asp:Panel ID="PnlSummaryGlobalProgressBar"
runat="server"
CssClass="progress-bar fraction-progress-bar"
role="progressbar"
aria-label="Avance global"
aria-valuemin="0"
aria-valuemax="100" />
</div>
</div>
</div>
<div class="fraction-data-item">
<span class="fraction-data-label">Estatus</span>
<asp:Label ID="LblSummaryStatus"
runat="server"
CssClass="fraction-status-value" />
</div>
</div>
</section>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnDelete" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<div class="fraction-tabs-layout">
<div class="fraction-main-content">
<asp:UpdatePanel ID="UpDetailTabs"
runat="server"
UpdateMode="Conditional"
ChildrenAsTriggers="true">
<ContentTemplate>
<ajax:TabContainer ID="TabsFractionDetail"
runat="server"
ActiveTabIndex="0"
Width="100%">
<ajax:TabPanel ID="TabStages"
runat="server">
<HeaderTemplate>
<i class="fa fa-building-o"></i>
Etapas
<span class="badge">
<asp:Literal ID="LitStageCount" runat="server" />
</span>
</HeaderTemplate>
<ContentTemplate>
<section class="fraction-content-card">
<div class="fraction-card-heading">
<h3>Etapas del fraccionamiento</h3>
<asp:LinkButton ID="BtnNewStage"
runat="server"
CssClass="btn btn-outline blue"
CausesValidation="false"
OnClick="BtnNewStage_Click">
<i class="fa fa-plus"></i>
Agregar etapa
</asp:LinkButton>
</div>
<div class="fraction-table-scroll">
<asp:GridView ID="GvStages"
runat="server"
AutoGenerateColumns="false"
GridLines="None"
CssClass="table table-hover Widthall"
OnRowCommand="GvStages_RowCommand">
<Columns>
<asp:TemplateField HeaderText="" ItemStyle-CssClass="tra-order-cell">
<ItemTemplate>
<span class="tra-order-handle"
data-sig-order-id='<%# Eval("CveFraccionamientoEtapa") %>'
title="Arrastrar para cambiar el orden">
<i class="fa fa-bars"></i>
</span>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Etapa" HeaderText="Etapa" />
<asp:BoundField DataField="Hectareas"
HeaderText="Hectáreas"
DataFormatString="{0:N4}" />
<asp:TemplateField HeaderText="Avance" ItemStyle-Width="220">
<ItemTemplate>
<div class="fraction-stage-progress">
<span class="fraction-progress-value">
<%#: GetProgressText(Eval("Avance")) %>
</span>
<div class="progress fraction-progress-track"
role="progressbar"
aria-label="Avance de la etapa"
aria-valuemin="0"
aria-valuemax="100"
aria-valuenow='<%# GetProgressAriaValue(Eval("Avance")) %>'>
<span class="progress-bar fraction-progress-bar"
style='<%# GetProgressWidthStyle(Eval("Avance")) %>'>
</span>
</div>
</div>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Estatus">
<ItemTemplate>
<span class='<%# GetStageStatusCss(Eval("EsActivo")) %>'>
<%# GetStageStatusText(Eval("EsActivo")) %>
</span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Acciones" ItemStyle-Width="120">
<ItemTemplate>
<asp:LinkButton ID="BtnAddLots"
runat="server"
CssClass="btn btn-circle btn-sm blue"
CausesValidation="false"
CommandName="AddLots"
CommandArgument='<%# Eval("CveFraccionamientoEtapa") %>'
ToolTip="Agregar lotes"
data-toggle="tooltip"
data-placement="top"
aria-label="Agregar lotes">
<i class="fa fa-plus"></i>
</asp:LinkButton>
<asp:LinkButton ID="BtnEditStage"
runat="server"
CssClass="btn btn-circle btn-sm green"
CausesValidation="false"
CommandName="EditStage"
CommandArgument='<%# Eval("CveFraccionamientoEtapa") %>'
ToolTip="Editar etapa"
data-toggle="tooltip"
data-placement="top"
aria-label="Editar etapa">
<i class="fa fa-pencil"></i>
</asp:LinkButton>
<asp:LinkButton ID="BtnDeleteStage"
runat="server"
CssClass="btn btn-circle btn-sm red"
CausesValidation="false"
CommandName="DeleteStage"
CommandArgument='<%# Eval("CveFraccionamientoEtapa") %>'
data-toggle="confirmation"
data-popout="true"
data-original-title="Confirmar"
data-btn-ok-label="Sí"
data-btn-cancel-label="No"
aria-label="Eliminar etapa">
<i class="icon-trash"></i>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<div class="fraction-empty-state">
<span class="fraction-empty-icon">
<i class="fa fa-list-ul"></i>
</span>
<span>El fraccionamiento todavía no tiene etapas.</span>
</div>
</EmptyDataTemplate>
</asp:GridView>
<asp:HiddenField ID="HfStageOrderMove" runat="server" />
<asp:LinkButton ID="BtnStageOrderMove"
runat="server"
CausesValidation="false"
Style="display: none;"
OnClick="BtnStageOrderMove_Click" />
</div>
</section>
<section class="fraction-content-card">
<div class="fraction-card-heading">
<h3>Últimos trámites</h3>
<asp:LinkButton ID="BtnNewProcedure"
runat="server"
CssClass="btn btn-outline blue"
CausesValidation="false"
OnClick="BtnNewProcedure_Click">
<i class="fa fa-plus"></i>
Agregar trámite
</asp:LinkButton>
</div>
<div class="fraction-table-scroll">
<asp:GridView ID="GvProcedures"
runat="server"
AutoGenerateColumns="false"
GridLines="None"
CssClass="table table-hover Widthall">
<Columns>
<asp:BoundField DataField="TipoTramite" HeaderText="Trámite" />
<asp:BoundField DataField="Folio" HeaderText="Folio" />
<asp:BoundField DataField="Etapa" HeaderText="Etapa" />
<asp:BoundField DataField="EstatusSolicitud" HeaderText="Estatus" />
<asp:BoundField DataField="FechaUltimoEstatus"
HeaderText="Última actualización"
DataFormatString="{0:dd/MM/yyyy HH:mm}" />
</Columns>
<EmptyDataTemplate>
<div class="fraction-empty-state">
<span class="fraction-empty-icon">
<i class="fa fa-clipboard"></i>
</span>
<span>No hay trámites registrados para las etapas.</span>
</div>
</EmptyDataTemplate>
</asp:GridView>
</div>
</section>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabLots"
runat="server">
<HeaderTemplate>
<i class="fa fa-th"></i>
Lotes
<span class="badge">
<asp:Literal ID="LitLotCount" runat="server" />
</span>
</HeaderTemplate>
<ContentTemplate>
<section class="fraction-content-card">
<div class="fraction-card-heading fraction-lot-heading">
<h3>Lotes por etapa</h3>
<div class="fraction-lot-toolbar">
<div class="fraction-lot-filter">
<label for="DdlLotsStage">Etapa</label>
<asp:DropDownList ID="DdlLotsStage"
runat="server"
ClientIDMode="Static"
CssClass="form-control select2me"
Width="260px"
AutoPostBack="true"
OnSelectedIndexChanged="DdlLotsStage_SelectedIndexChanged" />
</div>
<asp:LinkButton ID="BtnClearStageLots"
runat="server"
CssClass="btn btn-outline red"
CausesValidation="false"
OnClick="BtnClearStageLots_Click"
data-toggle="confirmation"
data-popout="true"
data-original-title="¿Eliminar todos los lotes de la etapa seleccionada?"
data-btn-ok-label="Sí"
data-btn-cancel-label="No">
<i class="fa fa-trash-o"></i>
Vaciar etapa
</asp:LinkButton>
</div>
</div>
<asp:Panel ID="PnlLotsStageRequired"
runat="server"
CssClass="fraction-lot-stage-required">
<span class="fraction-empty-icon" aria-hidden="true">
<i class="fa fa-map-marker"></i>
</span>
<div>
<strong>Seleccione una etapa</strong>
<p>El GIS, el avance y los lotes se consultan por etapa.</p>
</div>
</asp:Panel>
<asp:Panel ID="PnlLotsStageContext"
runat="server"
CssClass="fraction-lot-stage-context"
Visible="false">
<div class="fraction-selected-stage-overview">
<div class="fraction-selected-stage-name">
<span>Etapa seleccionada</span>
<strong>
<asp:Literal ID="LitLotsSelectedStage"
runat="server" />
</strong>
</div>
<div class="fraction-selected-stage-progress">
<span>Avance de la etapa</span>
<div class="fraction-stage-progress">
<strong class="fraction-progress-value">
<asp:Literal ID="LitLotsSelectedStageProgress"
runat="server" />
</strong>
<div class="progress fraction-progress-track">
<asp:Panel ID="PnlLotsSelectedStageProgressBar"
runat="server"
CssClass="progress-bar fraction-progress-bar"
role="progressbar"
aria-label="Avance de la etapa seleccionada"
aria-valuemin="0"
aria-valuemax="100" />
</div>
</div>
</div>
<div class="fraction-stage-gis-actions">
<asp:PlaceHolder ID="PhStageGisMissing"
runat="server"
Visible="false">
<asp:LinkButton ID="BtnAddStageGis"
runat="server"
CssClass="btn btn-outline blue"
CausesValidation="false"
OnClick="BtnAddStageGis_Click">
<i class="fa fa-map-o"></i>
Agregar GIS
</asp:LinkButton>
</asp:PlaceHolder>
<asp:PlaceHolder ID="PhStageGisExistingActions"
runat="server"
Visible="false">
<asp:LinkButton ID="BtnManageStageGis"
runat="server"
CssClass="btn btn-outline blue"
CausesValidation="false"
OnClick="BtnManageStageGis_Click">
<i class="fa fa-cog"></i>
Administrar GIS
</asp:LinkButton>
</asp:PlaceHolder>
</div>
</div>
<asp:Panel ID="PnlStageGisExisting"
runat="server"
CssClass="fraction-gis-card"
Visible="false">
<div class="fraction-gis-heading">
<div>
<span>GIS de la etapa</span>
<strong>
<asp:Literal ID="LitStageGisName"
runat="server" />
</strong>
<small>
<asp:Literal ID="LitStageGisUpdatedAt"
runat="server" />
</small>
</div>
<asp:HyperLink ID="LnkStageGisOpen"
runat="server"
CssClass="btn btn-default btn-sm"
Target="_blank"
rel="noopener noreferrer">
<i class="fa fa-external-link"></i>
Abrir en otra pestaña
</asp:HyperLink>
</div>
<div class="fraction-gis-frame-wrap">
<iframe id="IframeStageGis"
runat="server"
class="fraction-gis-frame js-sig-stage-gis-frame"
title="GIS de la etapa seleccionada"
loading="lazy"
referrerpolicy="no-referrer"
sandbox="allow-scripts allow-same-origin allow-forms allow-popups">
</iframe>
</div>
</asp:Panel>
<asp:Panel ID="PnlStageGisInvalidUrl"
runat="server"
CssClass="alert alert-warning fraction-gis-warning"
role="alert"
Visible="false">
El GIS guardado no tiene una URL HTTP/HTTPS válida.
Use <strong>Administrar GIS</strong> para corregirla.
</asp:Panel>
<div class="fraction-table-scroll fraction-lots-table">
<asp:GridView ID="GvLots"
runat="server"
AutoGenerateColumns="false"
GridLines="None"
CssClass="table table-hover Widthall"
OnRowCommand="GvLots_RowCommand">
<Columns>
<asp:BoundField DataField="Etapa" HeaderText="Etapa" />
<asp:BoundField DataField="Nombre" HeaderText="Nombre" />
<asp:BoundField DataField="Tipo" HeaderText="Tipo" />
<asp:BoundField DataField="Calle" HeaderText="Calle" />
<asp:BoundField DataField="Catastro" HeaderText="Catastro" />
<asp:BoundField DataField="MetrosCuadrados"
HeaderText="Metros cuadrados"
DataFormatString="{0:N4}" />
<asp:BoundField DataField="Duplicador" HeaderText="Duplicador" />
<asp:TemplateField HeaderText="Estatus">
<ItemTemplate>
<span class='<%# GetLotStatusCss(Eval("EsActivo")) %>'>
<%# GetLotStatusText(Eval("EsActivo")) %>
</span>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Acciones" ItemStyle-Width="90">
<ItemTemplate>
<asp:LinkButton ID="BtnEditLot"
runat="server"
CssClass="btn btn-circle btn-sm green"
CausesValidation="false"
CommandName="EditLot"
CommandArgument='<%# Eval("CveFraccionamientoLote") %>'
ToolTip="Editar lote"
data-toggle="tooltip"
data-placement="top"
aria-label="Editar lote">
<i class="fa fa-pencil"></i>
</asp:LinkButton>
<asp:LinkButton ID="BtnDeleteLot"
runat="server"
CssClass="btn btn-circle btn-sm red"
CausesValidation="false"
CommandName="DeleteLot"
CommandArgument='<%# Eval("CveFraccionamientoLote") %>'
data-toggle="confirmation"
data-popout="true"
data-original-title="¿Eliminar este lote?"
data-btn-ok-label="Sí"
data-btn-cancel-label="No"
aria-label="Eliminar lote">
<i class="icon-trash"></i>
</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<div class="fraction-empty-state">
<span class="fraction-empty-icon">
<i class="fa fa-th"></i>
</span>
<span>No hay lotes registrados para la etapa seleccionada.</span>
</div>
</EmptyDataTemplate>
</asp:GridView>
</div>
</asp:Panel>
</section>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabProcedures"
runat="server">
<HeaderTemplate>
<i class="fa fa-clipboard"></i>
Trámites
<span class="badge">
<asp:Literal ID="LitProcedureCount" runat="server" />
</span>
</HeaderTemplate>
<ContentTemplate>
<div class="fraction-empty-panel">
<i class="fa fa-clipboard"></i>
<p>Los trámites recientes se muestran en la pestaña Etapas.</p>
</div>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabPayments"
runat="server">
<HeaderTemplate>
<i class="fa fa-credit-card"></i>
Pagos
</HeaderTemplate>
<ContentTemplate>
<div class="fraction-empty-panel">
<i class="fa fa-credit-card"></i>
<p>No hay pagos registrados.</p>
</div>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabDocuments"
runat="server">
<HeaderTemplate>
<i class="fa fa-file-text-o"></i>
Documentos
</HeaderTemplate>
<ContentTemplate>
<div class="fraction-empty-panel">
<i class="fa fa-file-text-o"></i>
<p>No hay documentos registrados.</p>
</div>
</ContentTemplate>
</ajax:TabPanel>
<ajax:TabPanel ID="TabNotes"
runat="server">
<HeaderTemplate>
<i class="fa fa-sticky-note-o"></i>
Notas
</HeaderTemplate>
<ContentTemplate>
<div class="fraction-empty-panel">
<i class="fa fa-sticky-note-o"></i>
<p>No hay notas registradas.</p>
</div>
</ContentTemplate>
</ajax:TabPanel>
</ajax:TabContainer>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<sig:BitacoraGrid ID="UcBitacoraDetalle"
runat="server"
Titulo="Bitácora"
Descripcion="Historial del fraccionamiento, sus etapas y lotes"
TextoVacio="No hay movimientos registrados para este fraccionamiento."
RegistrosPorPagina="20"
ScrollsParaCambiarPagina="3" />
<div id="ModalEditDevelopment"
class="modal fade fraction-modal"
tabindex="-1"
role="dialog"
aria-hidden="true">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpDevelopmentModal"
runat="server"
UpdateMode="Conditional"
ChildrenAsTriggers="false">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Cerrar">
&times;
</button>
<h4 class="modal-title">Editar fraccionamiento</h4>
</div>
<div class="modal-body">
<asp:Label ID="LblEditMessage"
runat="server"
CssClass="alert alert-danger sig-modal-message sig-edit-message"
role="alert"
Visible="false" />
<div class="form-group">
<label>Cliente *</label>
<asp:DropDownList ID="DdlClient"
runat="server"
CssClass="form-control select2me"
Width="100%" />
</div>
<div class="form-group">
<label>Fraccionamiento *</label>
<asp:TextBox ID="TxtDevelopment"
runat="server"
CssClass="form-control"
MaxLength="200" />
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label>Hectáreas</label>
<asp:TextBox ID="TxtHectares"
runat="server"
CssClass="form-control" TextMode="Number"
MaxLength="30" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>Estatus *</label>
<asp:DropDownList ID="DdlStatus"
runat="server"
CssClass="form-control select2me"
Width="100%" />
</div>
</div>
</div>
<div class="form-group">
<label>Ubicación</label>
<asp:TextBox ID="TxtLocation"
runat="server"
CssClass="form-control"
MaxLength="500"
TextMode="MultiLine"
Rows="3" />
</div>
<asp:CheckBox ID="ChkActive"
runat="server"
Text=" Fraccionamiento activo" />
</div>
<div class="modal-footer">
<button type="button"
class="btn default"
data-dismiss="modal">
Cancelar
</button>
<asp:Button ID="BtnSave"
runat="server"
CssClass="btn blue"
Text="Guardar cambios"
OnClick="BtnSave_Click" />
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnSave" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
<div id="ModalStage"
class="modal fade fraction-modal"
tabindex="-1"
role="dialog"
aria-hidden="true">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpStageModal"
runat="server"
UpdateMode="Conditional"
ChildrenAsTriggers="false">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Cerrar">
&times;
</button>
<h4 class="modal-title">
<asp:Literal ID="LitStageTitle" runat="server" />
</h4>
</div>
<div class="modal-body">
<asp:Label ID="LblStageMessage"
runat="server"
CssClass="alert alert-danger sig-modal-message"
role="alert"
Visible="false" />
<div class="form-group">
<label>Etapa *</label>
<asp:TextBox ID="TxtStage"
runat="server"
CssClass="form-control"
MaxLength="150" />
</div>
<div class="form-group">
<label>Hectáreas</label>
<asp:TextBox ID="TxtStageHectares"
runat="server"
CssClass="form-control"
MaxLength="30" />
</div>
<asp:CheckBox ID="ChkStageActive"
runat="server"
Text=" Etapa activa" />
</div>
<div class="modal-footer">
<button type="button"
class="btn default"
data-dismiss="modal">
Cancelar
</button>
<asp:Button ID="BtnSaveStage"
runat="server"
CssClass="btn blue"
Text="Guardar etapa"
OnClick="BtnSaveStage_Click" />
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnSaveStage" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
<div id="ModalStageProgress"
class="modal fade fraction-modal"
tabindex="-1"
role="dialog"
aria-hidden="true">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpStageProgressModal"
runat="server"
UpdateMode="Conditional"
ChildrenAsTriggers="false">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Cerrar">
&times;
</button>
<h4 class="modal-title">Editar avance</h4>
</div>
<div class="modal-body">
<asp:Label ID="LblStageProgressMessage"
runat="server"
CssClass="alert alert-danger sig-modal-message sig-stage-progress-message"
role="alert"
Visible="false" />
<div class="form-group">
<label for="DdlStageProgress">Etapa *</label>
<asp:DropDownList ID="DdlStageProgress"
runat="server"
ClientIDMode="Static"
CssClass="form-control select2me"
Width="100%"
AutoPostBack="true"
OnSelectedIndexChanged="DdlStageProgress_SelectedIndexChanged" />
</div>
<asp:Panel ID="PnlStageProgressCapture"
runat="server"
Visible="false">
<div class="form-group">
<label for="TxtStageProgress">Porcentaje de avance *</label>
<div class="input-group">
<asp:TextBox ID="TxtStageProgress"
runat="server"
ClientIDMode="Static"
CssClass="form-control"
TextMode="Number"
MaxLength="6"
min="0"
max="100"
step="0.01" />
<span class="input-group-addon">%</span>
</div>
<span class="help-block">
Capture un valor entre 0.00 y 100.00.
</span>
</div>
</asp:Panel>
</div>
<div class="modal-footer">
<button type="button"
class="btn default"
data-dismiss="modal">
Cancelar
</button>
<asp:Button ID="BtnSaveStageProgress"
runat="server"
CssClass="btn blue"
Text="Guardar avance"
CausesValidation="false"
OnClick="BtnSaveStageProgress_Click" />
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger
ControlID="DdlStageProgress"
EventName="SelectedIndexChanged" />
<asp:AsyncPostBackTrigger
ControlID="BtnSaveStageProgress"
EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
<div id="ModalStageGis"
class="modal fade fraction-modal"
tabindex="-1"
role="dialog"
aria-hidden="true">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpStageGisModal"
runat="server"
UpdateMode="Conditional"
ChildrenAsTriggers="false">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Cerrar">
&times;
</button>
<h4 class="modal-title">
<asp:Literal ID="LitStageGisModalTitle"
runat="server" />
</h4>
</div>
<div class="modal-body">
<asp:Label ID="LblStageGisMessage"
runat="server"
CssClass="alert alert-danger sig-modal-message sig-stage-gis-message"
role="alert"
Visible="false" />
<div class="fraction-selected-stage">
<span>Etapa</span>
<strong>
<asp:Literal ID="LitStageGisStageName"
runat="server" />
</strong>
</div>
<div class="form-group">
<label for="TxtStageGisName">Nombre del GIS *</label>
<asp:TextBox ID="TxtStageGisName"
runat="server"
ClientIDMode="Static"
CssClass="form-control"
MaxLength="200" />
</div>
<div class="form-group">
<label for="TxtStageGisUrl">URL de visualización *</label>
<asp:TextBox ID="TxtStageGisUrl"
runat="server"
ClientIDMode="Static"
CssClass="form-control"
TextMode="Url"
MaxLength="2000"
placeholder="https://..." />
<span class="help-block">
Utilice una dirección HTTP o HTTPS que permita mostrarse dentro de la plataforma.
</span>
</div>
</div>
<div class="modal-footer">
<button type="button"
class="btn default"
data-dismiss="modal">
Cancelar
</button>
<asp:Button ID="BtnSaveStageGis"
runat="server"
CssClass="btn blue"
Text="Guardar GIS"
CausesValidation="false"
OnClick="BtnSaveStageGis_Click" />
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger
ControlID="BtnSaveStageGis"
EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
<div id="ModalLots"
class="modal fade fraction-modal fraction-lot-modal"
tabindex="-1"
role="dialog"
aria-hidden="true">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpLotsModal"
runat="server"
UpdateMode="Conditional"
ChildrenAsTriggers="false">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Cerrar">
&times;
</button>
<h4 class="modal-title">Agregar lotes</h4>
</div>
<div class="modal-body">
<asp:Label ID="LblLotMessage"
runat="server"
CssClass="alert alert-danger sig-modal-message sig-lot-message"
role="alert"
Visible="false" />
<div class="fraction-selected-stage">
<span>Etapa seleccionada</span>
<strong>
<asp:Literal ID="LitLotStageName" runat="server" />
</strong>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label>Cantidad de lotes *</label>
<asp:TextBox ID="TxtLotQuantity"
runat="server"
ClientIDMode="Static"
CssClass="form-control js-lot-preview-field"
TextMode="Number"
Text="1" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>Nombre base</label>
<asp:TextBox ID="TxtLotBaseName"
runat="server"
ClientIDMode="Static"
CssClass="form-control js-lot-preview-field"
MaxLength="50"
placeholder="Ejemplo: Lote-" />
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group fraction-lot-check">
<asp:CheckBox ID="ChkLotAddIdentifier"
runat="server"
ClientIDMode="Static"
Checked="true"
Text=" Agregar número identificador" />
</div>
</div>
<div class="col-sm-6" id="LotStartNumberGroup">
<div class="form-group">
<label>Número inicial *</label>
<asp:TextBox ID="TxtLotStartNumber"
runat="server"
ClientIDMode="Static"
CssClass="form-control js-lot-preview-field"
TextMode="Number"
Text="1" />
</div>
</div>
</div>
<div class="fraction-lot-preview">
<span>Vista previa</span>
<strong id="LotNamePreview">1</strong>
</div>
<div class="fraction-excel-box">
<div class="fraction-excel-copy">
<i class="fa fa-file-excel-o"></i>
<div>
<strong>Carga desde Excel</strong>
<span>Descargue la plantilla, capture los lotes y cárguela para esta etapa.</span>
</div>
</div>
<asp:HyperLink ID="LnkDownloadLotTemplate"
runat="server"
CssClass="btn btn-outline green"
NavigateUrl="~/Pages/Fraccionamientos/PlantillaLotes.ashx">
<i class="fa fa-download"></i>
Descargar plantilla
</asp:HyperLink>
<asp:FileUpload ID="FileLots"
runat="server"
CssClass="form-control fraction-lot-upload" />
<asp:Button ID="BtnImportLots"
runat="server"
CssClass="btn green"
Text="Cargar Excel"
CausesValidation="false"
OnClick="BtnImportLots_Click" />
</div>
</div>
<div class="modal-footer">
<button type="button"
class="btn default"
data-dismiss="modal">
Cancelar
</button>
<asp:Button ID="BtnSaveLots"
runat="server"
CssClass="btn blue"
Text="Guardar lotes"
CausesValidation="false"
OnClick="BtnSaveLots_Click" />
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnSaveLots" EventName="Click" />
<asp:PostBackTrigger ControlID="BtnImportLots" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
<div id="ModalEditLot"
class="modal fade fraction-modal"
tabindex="-1"
role="dialog"
aria-hidden="true">
<div class="modal-dialog">
<asp:UpdatePanel ID="UpEditLotModal"
runat="server"
UpdateMode="Conditional"
ChildrenAsTriggers="false">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button"
class="close"
data-dismiss="modal"
aria-label="Cerrar">
&times;
</button>
<h4 class="modal-title">Editar lote</h4>
</div>
<div class="modal-body">
<asp:Label ID="LblEditLotMessage"
runat="server"
CssClass="alert alert-danger sig-modal-message sig-edit-lot-message"
role="alert"
Visible="false" />
<div class="fraction-selected-stage">
<span>Etapa</span>
<strong>
<asp:Literal ID="LitEditLotStage" runat="server" />
</strong>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label>Nombre *</label>
<asp:TextBox ID="TxtEditLotName"
runat="server"
CssClass="form-control"
MaxLength="50" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>Tipo</label>
<asp:TextBox ID="TxtEditLotType"
runat="server"
CssClass="form-control"
MaxLength="100" />
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label>Calle</label>
<asp:TextBox ID="TxtEditLotStreet"
runat="server"
CssClass="form-control"
MaxLength="200" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>Catastro</label>
<asp:TextBox ID="TxtEditLotCadastre"
runat="server"
CssClass="form-control"
MaxLength="100" />
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<div class="form-group">
<label>Metros cuadrados</label>
<asp:TextBox ID="TxtEditLotSquareMeters"
runat="server"
CssClass="form-control"
MaxLength="30" />
</div>
</div>
<div class="col-sm-6">
<div class="form-group">
<label>Duplicador</label>
<asp:TextBox ID="TxtEditLotDuplicate"
runat="server"
CssClass="form-control"
MaxLength="50" />
</div>
</div>
</div>
<asp:CheckBox ID="ChkEditLotActive"
runat="server"
Text=" Lote activo" />
</div>
<div class="modal-footer">
<button type="button"
class="btn default"
data-dismiss="modal">
Cancelar
</button>
<asp:Button ID="BtnSaveLot"
runat="server"
CssClass="btn blue"
Text="Guardar lote"
CausesValidation="false"
OnClick="BtnSaveLot_Click" />
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnSaveLot" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
</asp:Content>
<asp:Content ID="ContentScripts" ContentPlaceHolderID="J" runat="server">
<script src='<%= ResolveUrl("~/Scripts/CatalogosTramites.js") %>'
type="text/javascript"></script>
<script>
window.SIGDetail = window.SIGDetail || {};
window.SIGDetail.initializeStageGisFrames = function (root) {
var context = root || document;
var frames = $(context)
.find('.js-sig-stage-gis-frame:not([data-sig-stage-gis-initialized="1"])')
.addBack('.js-sig-stage-gis-frame:not([data-sig-stage-gis-initialized="1"])');
frames.each(function () {
var frame = this;
var source = frame.getAttribute('data-src');
var parser;
if (!source) {
return;
}
parser = document.createElement('a');
parser.href = source;
if (parser.protocol !== 'http:' && parser.protocol !== 'https:') {
return;
}
frame.setAttribute('src', source);
frame.setAttribute('data-sig-stage-gis-initialized', '1');
});
};
window.SIGDetail.initialize = function (root) {
window.SIGDetail.initializeStageGisFrames(root || document);
};
window.SIGDetail.initializeModal = function (modalSelector) {
var modal = $(modalSelector);
modal.modal('show');
window.SIGDetail.initialize(modal[0]);
if (window.App && App.initAjax) {
App.initAjax();
}
};
window.SIGDetail.hideModal = function (modalSelector) {
$(modalSelector).modal('hide');
};
window.SIGDetail.showEdit = function () {
window.SIGDetail.initializeModal('#ModalEditDevelopment');
};
window.SIGDetail.hideEdit = function () {
window.SIGDetail.hideModal('#ModalEditDevelopment');
};
window.SIGDetail.showStage = function () {
window.SIGDetail.initializeModal('#ModalStage');
};
window.SIGDetail.hideStage = function () {
window.SIGDetail.hideModal('#ModalStage');
};
window.SIGDetail.showStageProgress = function () {
window.SIGDetail.initializeModal('#ModalStageProgress');
};
window.SIGDetail.hideStageProgress = function () {
window.SIGDetail.hideModal('#ModalStageProgress');
};
window.SIGDetail.showStageGis = function () {
window.SIGDetail.initializeModal('#ModalStageGis');
};
window.SIGDetail.hideStageGis = function () {
window.SIGDetail.hideModal('#ModalStageGis');
};
window.SIGDetail.showEditLot = function () {
window.SIGDetail.initializeModal('#ModalEditLot');
};
window.SIGDetail.hideEditLot = function () {
window.SIGDetail.hideModal('#ModalEditLot');
};
window.SIGDetail.updateLotPreview = function () {
var quantity = parseInt($('#TxtLotQuantity').val(), 10) || 1;
var baseName = $('#TxtLotBaseName').val() || '';
var addIdentifier = $('#ChkLotAddIdentifier').is(':checked');
var startNumber = parseInt($('#TxtLotStartNumber').val(), 10) || 0;
var firstName = addIdentifier
? baseName + startNumber
: baseName;
var lastName = addIdentifier
? baseName + (startNumber + Math.max(0, quantity - 1))
: baseName;
var preview = firstName || 'Capture un nombre';
if (quantity > 1 && lastName !== firstName) {
preview += ' … ' + lastName;
}
$('#LotStartNumberGroup').toggle(addIdentifier);
$('#LotNamePreview').text(preview);
};
window.SIGDetail.showLots = function () {
window.SIGDetail.initializeModal('#ModalLots');
window.SIGDetail.updateLotPreview();
};
window.SIGDetail.hideLots = function () {
window.SIGDetail.hideModal('#ModalLots');
};
if (window.SIG_DETAIL_INITIALIZATION_REGISTERED !== true) {
window.SIG_DETAIL_INITIALIZATION_REGISTERED = true;
if (window.Sys && Sys.Application) {
Sys.Application.add_load(function () {
window.SIGDetail.initialize(document);
});
} else {
$(function () {
window.SIGDetail.initialize(document);
});
}
}
if (window.SIG_DETAIL_EVENTS_REGISTERED !== true) {
window.SIG_DETAIL_EVENTS_REGISTERED = true;
$(document).on(
'input change',
'#ModalLots .js-lot-preview-field, #ChkLotAddIdentifier',
window.SIGDetail.updateLotPreview);
$(document).on(
'shown.bs.modal.sigFractionDetail',
'#ModalLots',
window.SIGDetail.updateLotPreview);
$(document).on(
'hidden.bs.modal.sigFractionDetail',
'#ModalLots',
function () {
$(this).find('.sig-lot-message').hide();
});
$(document).on(
'hidden.bs.modal.sigFractionDetail',
'#ModalEditDevelopment',
function () {
$(this).find('.sig-edit-message').hide();
});
$(document).on(
'hidden.bs.modal.sigFractionDetail',
'#ModalEditLot',
function () {
$(this).find('.sig-edit-lot-message').hide();
});
$(document).on(
'hidden.bs.modal.sigFractionDetail',
'#ModalStageProgress',
function () {
$(this).find('.sig-stage-progress-message').hide();
});
$(document).on(
'hidden.bs.modal.sigFractionDetail',
'#ModalStageGis',
function () {
$(this).find('.sig-stage-gis-message').hide();
});
}
</script>
</asp:Content>