diff --git a/SIG.Web/App_Code/Contracts/Clientes/IServicioPortalCliente.cs b/SIG.Web/App_Code/Contracts/Clientes/IServicioPortalCliente.cs index 57cced7..5d12d9c 100644 --- a/SIG.Web/App_Code/Contracts/Clientes/IServicioPortalCliente.cs +++ b/SIG.Web/App_Code/Contracts/Clientes/IServicioPortalCliente.cs @@ -18,13 +18,40 @@ namespace SIG.Web.AppCode.Contracts.Clientes int cveUsuarioEjecuta, string nombreDominio); + DbResult GuardarFraccionamientoConEtapa( + ModeloFraccionamiento fraccionamiento, + ModeloEtapaFraccionamiento etapa, + int cveUsuarioEjecuta, + string nombreDominio); + + DbResult GuardarFraccionamiento( + ModeloFraccionamiento fraccionamiento, + int cveUsuarioEjecuta, + string nombreDominio); + DbResult> ListarEtapas( int cveFraccionamiento, int cveUsuarioEjecuta, string nombreDominio); + DbResult ObtenerEtapa( + int cveFraccionamientoEtapa, + int cveUsuarioEjecuta, + string nombreDominio); + + DbResult GuardarEtapa( + ModeloEtapaFraccionamiento etapa, + int cveUsuarioEjecuta, + string nombreDominio); + + DbResult> ListarTramites( + int cveFraccionamiento, + int cveUsuarioEjecuta, + string nombreDominio); + DbResult> ListarTramites( int cveFraccionamiento, + int? cveFraccionamientoEtapa, int cveUsuarioEjecuta, string nombreDominio); diff --git a/SIG.Web/App_Code/Services/Clientes/ServicioPortalCliente.cs b/SIG.Web/App_Code/Services/Clientes/ServicioPortalCliente.cs index 96f798f..70b02f0 100644 --- a/SIG.Web/App_Code/Services/Clientes/ServicioPortalCliente.cs +++ b/SIG.Web/App_Code/Services/Clientes/ServicioPortalCliente.cs @@ -99,6 +99,85 @@ namespace SIG.Web.AppCode.Services.Clientes return resultado; } + public DbResult GuardarFraccionamientoConEtapa( + ModeloFraccionamiento fraccionamiento, + ModeloEtapaFraccionamiento etapa, + int cveUsuarioEjecuta, + string nombreDominio) + { + UserSessionModel usuario; + DbResult acceso = ValidarCliente( + cveUsuarioEjecuta, + out usuario); + + if (!acceso.Success) + { + return Fallo(acceso.UserMessage); + } + + if (fraccionamiento == null) + { + return Fallo("No se recibieron los datos del fraccionamiento."); + } + + if (etapa == null) + { + return Fallo("Capture la etapa inicial del fraccionamiento."); + } + + fraccionamiento.CveFraccionamiento = 0; + fraccionamiento.CveCliente = usuario.CveCliente; + fraccionamiento.CveEstatus = 1; + fraccionamiento.EsActivo = true; + + etapa.CveFraccionamientoEtapa = 0; + etapa.CveCliente = usuario.CveCliente; + etapa.CveFraccionamiento = 0; + etapa.EsActivo = true; + + return _servicioFraccionamiento.GuardarConEtapas( + fraccionamiento, + new List { etapa }, + cveUsuarioEjecuta, + nombreDominio); + } + + public DbResult GuardarFraccionamiento( + ModeloFraccionamiento fraccionamiento, + int cveUsuarioEjecuta, + string nombreDominio) + { + if (fraccionamiento == null || + fraccionamiento.CveFraccionamiento <= 0) + { + return Fallo("Seleccione un fraccionamiento válido."); + } + + DbResult actual = + ObtenerFraccionamiento( + fraccionamiento.CveFraccionamiento, + cveUsuarioEjecuta, + nombreDominio); + + if (!actual.Success || actual.Data == null) + { + return DbResult.Fail( + actual.UserMessage, + actual.TechnicalMessage, + actual.Exception); + } + + actual.Data.Fraccionamiento = fraccionamiento.Fraccionamiento; + actual.Data.Ubicacion = fraccionamiento.Ubicacion; + actual.Data.Hectareas = fraccionamiento.Hectareas; + + return _servicioFraccionamiento.Guardar( + actual.Data, + cveUsuarioEjecuta, + nombreDominio); + } + + public DbResult> ListarEtapas( int cveFraccionamiento, int cveUsuarioEjecuta, @@ -122,10 +201,93 @@ namespace SIG.Web.AppCode.Services.Clientes nombreDominio); } + public DbResult ObtenerEtapa( + int cveFraccionamientoEtapa, + int cveUsuarioEjecuta, + string nombreDominio) + { + UserSessionModel usuario; + DbResult acceso = ValidarCliente( + cveUsuarioEjecuta, + out usuario); + + if (!acceso.Success) + { + return Fallo(acceso.UserMessage); + } + + DbResult resultado = + _servicioFraccionamiento.ObtenerEtapa( + cveFraccionamientoEtapa, + cveUsuarioEjecuta, + nombreDominio); + + if (!resultado.Success || resultado.Data == null) + { + return resultado; + } + + if (resultado.Data.CveCliente != usuario.CveCliente) + { + return Fallo( + "No tiene acceso a la etapa seleccionada."); + } + + return resultado; + } + + public DbResult GuardarEtapa( + ModeloEtapaFraccionamiento etapa, + int cveUsuarioEjecuta, + string nombreDominio) + { + if (etapa == null || etapa.CveFraccionamiento <= 0) + { + return Fallo("Seleccione un fraccionamiento válido."); + } + + DbResult fraccionamiento = + ObtenerFraccionamiento( + etapa.CveFraccionamiento, + cveUsuarioEjecuta, + nombreDominio); + + if (!fraccionamiento.Success || fraccionamiento.Data == null) + { + return DbResult.Fail( + fraccionamiento.UserMessage, + fraccionamiento.TechnicalMessage, + fraccionamiento.Exception); + } + + etapa.CveFraccionamientoEtapa = 0; + etapa.CveCliente = fraccionamiento.Data.CveCliente; + etapa.EsActivo = true; + + return _servicioFraccionamiento.GuardarEtapa( + etapa, + cveUsuarioEjecuta, + nombreDominio); + } + + public DbResult> ListarTramites( int cveFraccionamiento, int cveUsuarioEjecuta, string nombreDominio) + { + return ListarTramites( + cveFraccionamiento, + null, + cveUsuarioEjecuta, + nombreDominio); + } + + public DbResult> ListarTramites( + int cveFraccionamiento, + int? cveFraccionamientoEtapa, + int cveUsuarioEjecuta, + string nombreDominio) { UserSessionModel usuario; DbResult acceso = ValidarCliente( @@ -149,10 +311,27 @@ namespace SIG.Web.AppCode.Services.Clientes fraccionamiento.UserMessage); } + if (cveFraccionamientoEtapa.HasValue) + { + DbResult etapa = + ObtenerEtapa( + cveFraccionamientoEtapa.Value, + cveUsuarioEjecuta, + nombreDominio); + + if (!etapa.Success || + etapa.Data == null || + etapa.Data.CveFraccionamiento != cveFraccionamiento) + { + return Fallo>( + "La etapa seleccionada no pertenece al fraccionamiento."); + } + } + DbResult> solicitudes = _servicioTramites.ListForDevelopment( cveFraccionamiento, - null, + cveFraccionamientoEtapa, null, null, cveUsuarioEjecuta, @@ -169,7 +348,7 @@ namespace SIG.Web.AppCode.Services.Clientes DbResult> documentos = _servicioDocumentos.ListarRequisitos( cveFraccionamiento, - null, + cveFraccionamientoEtapa, null, cveUsuarioEjecuta, nombreDominio); @@ -186,7 +365,7 @@ namespace SIG.Web.AppCode.Services.Clientes _repositorio.ListarPagos( usuario.CveCliente, cveFraccionamiento, - null, + cveFraccionamientoEtapa, null, cveUsuarioEjecuta, nombreDominio); diff --git a/SIG.Web/Pages/Clientes/Desarrollos.aspx b/SIG.Web/Pages/Clientes/Desarrollos.aspx index ad7dd9c..e893be9 100644 --- a/SIG.Web/Pages/Clientes/Desarrollos.aspx +++ b/SIG.Web/Pages/Clientes/Desarrollos.aspx @@ -4,22 +4,56 @@ @@ -27,6 +61,15 @@ +
+ + + Agregar fraccionamiento + +
+
+ OnRowDataBound="EnlazarFila" + OnRowCommand="Desarrollos_Comando"> - + -
-
- - - <%#: ResumenFraccionamiento(Container.DataItem) %> - -
+ -
+ + + <%#: ResumenFraccionamiento(Container.DataItem) %> + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - -
+ + + + + diff --git a/SIG.Web/Pages/Clientes/Desarrollos.aspx.cs b/SIG.Web/Pages/Clientes/Desarrollos.aspx.cs index a7b2dc6..5b6f011 100644 --- a/SIG.Web/Pages/Clientes/Desarrollos.aspx.cs +++ b/SIG.Web/Pages/Clientes/Desarrollos.aspx.cs @@ -5,6 +5,7 @@ using System.Web.UI; using System.Web.UI.WebControls; using SIG.Web.AppCode.Configuration; using SIG.Web.AppCode.Infrastructure.WebForms; +using SIG.Web.AppCode.Models.Common; using SIG.Web.AppCode.Models.Fraccionamientos; using SIG.Web.AppCode.Security; @@ -12,6 +13,22 @@ namespace SIG.Web.Pages.Clientes { public partial class Desarrollos : ClsPaginaBase { + #region Propiedades + + private int CveFraccionamientoEdicion + { + get { return (int?)ViewState["CveFraccionamientoEdicion"] ?? 0; } + set { ViewState["CveFraccionamientoEdicion"] = value; } + } + + private int CveFraccionamientoEtapaActual + { + get { return (int?)ViewState["CveFraccionamientoEtapaActual"] ?? 0; } + set { ViewState["CveFraccionamientoEtapaActual"] = value; } + } + + #endregion + protected void Page_Load(object origen, EventArgs argumentos) { if (!IsPostBack) @@ -39,35 +56,227 @@ namespace SIG.Web.Pages.Clientes if (fila.EsFraccionamiento) { - argumentos.Row.CssClass = "sig-grid-grupo"; + argumentos.Row.CssClass = + (argumentos.Row.CssClass + " sig-grid-grupo sig-cliente-fila-fraccionamiento").Trim(); argumentos.Row.Attributes["data-sig-group-row"] = "1"; argumentos.Row.Attributes["data-sig-group-id"] = grupo; - for (int indiceCelda = 0; indiceCelda < argumentos.Row.Cells.Count; indiceCelda++) - { - string claseCelda = indiceCelda == 0 - ? "sig-grid-columna-grupo" - : "sig-grid-columna-normal"; - argumentos.Row.Cells[indiceCelda].CssClass = - (argumentos.Row.Cells[indiceCelda].CssClass + " " + claseCelda).Trim(); - } - - argumentos.Row.Attributes["data-sig-level"] = "2"; + argumentos.Row.Attributes["data-sig-level"] = "2"; argumentos.Row.Attributes["data-sig-expanded-default"] = "true"; - return; } argumentos.Row.CssClass = - (argumentos.Row.CssClass + " sig-grid-fila-dato").Trim(); + (argumentos.Row.CssClass + " sig-grid-fila-dato sig-cliente-fila-etapa").Trim(); argumentos.Row.Attributes["data-sig-item-row"] = "1"; argumentos.Row.Attributes["data-sig-parent-group"] = grupo; argumentos.Row.Attributes["data-sig-level"] = "1"; } - protected string UrlDetalleFraccionamiento(object clave) + protected void NuevoFraccionamiento_Click(object origen, EventArgs argumentos) { - return ResolveUrl("~/Pages/Clientes/FraccionamientoDetalle.aspx?id=") + - Convert.ToInt32(clave).ToString(CultureInfo.InvariantCulture); + CveFraccionamientoEdicion = 0; + LitTituloFraccionamiento.Text = "Agregar fraccionamiento"; + TxtFraccionamiento.Text = string.Empty; + TxtUbicacion.Text = string.Empty; + TxtHectareasFraccionamiento.Text = string.Empty; + TxtEtapaInicial.Text = string.Empty; + TxtEtapaInicial.Attributes["data-sig-nombre-automatico"] = "1"; + TxtHectareasEtapaInicial.Text = string.Empty; + ChkFideicomisoEtapaInicial.Checked = false; + PnlEtapaInicial.Visible = true; + UpModalFraccionamiento.Update(); + RegistraScript("$('#ModalFraccionamientoCliente').modal('show');"); + } + + protected void Desarrollos_Comando( + object origen, + GridViewCommandEventArgs argumentos) + { + if (argumentos.CommandName != "EditarFraccionamiento" && + argumentos.CommandName != "AgregarEtapa") + { + return; + } + + var control = argumentos.CommandSource as Control; + var fila = control == null + ? null + : control.NamingContainer as GridViewRow; + + if (fila == null || fila.RowIndex < 0) + { + return; + } + + int cveFraccionamiento = Convert.ToInt32( + GvDesarrollos.DataKeys[fila.RowIndex].Values["CveFraccionamiento"]); + + DbResult consulta = + AppServices.ServicioPortalCliente.ObtenerFraccionamiento( + cveFraccionamiento, + CurrentUser.CveUsuario, + CurrentUser.NombreDominio); + + if (!consulta.Success || consulta.Data == null) + { + Alert( + consulta.Success + ? "No se encontró el fraccionamiento." + : consulta.UserMessage, + TipoMensaje.MsgAdvertencia); + return; + } + + if (argumentos.CommandName == "EditarFraccionamiento") + { + AbrirEdicionFraccionamiento(consulta.Data); + return; + } + + AbrirAltaEtapa(consulta.Data); + } + + protected void GuardarFraccionamiento_Click(object origen, EventArgs argumentos) + { + decimal? hectareasFraccionamiento; + + if (!LeerHectareas( + TxtHectareasFraccionamiento.Text, + out hectareasFraccionamiento)) + { + Alert("Capture hectáreas válidas.", TipoMensaje.MsgAdvertencia); + return; + } + + DbResult resultado; + + if (CveFraccionamientoEdicion <= 0) + { + decimal? hectareasEtapa; + + if (!LeerHectareas( + TxtHectareasEtapaInicial.Text, + out hectareasEtapa)) + { + Alert( + "Capture hectáreas válidas para la etapa.", + TipoMensaje.MsgAdvertencia); + return; + } + + string nombreEtapa = TxtEtapaInicial.Text.Trim(); + + if (nombreEtapa.Length == 0) + { + nombreEtapa = TxtFraccionamiento.Text.Trim() + " I"; + } + + resultado = AppServices.ServicioPortalCliente.GuardarFraccionamientoConEtapa( + new ModeloFraccionamiento + { + Fraccionamiento = TxtFraccionamiento.Text, + Ubicacion = TxtUbicacion.Text, + Hectareas = hectareasFraccionamiento + }, + new ModeloEtapaFraccionamiento + { + Etapa = nombreEtapa, + Hectareas = hectareasEtapa, + Fideicomiso = ChkFideicomisoEtapaInicial.Checked, + EsActivo = true + }, + CurrentUser.CveUsuario, + CurrentUser.NombreDominio); + } + else + { + resultado = AppServices.ServicioPortalCliente.GuardarFraccionamiento( + new ModeloFraccionamiento + { + CveFraccionamiento = CveFraccionamientoEdicion, + Fraccionamiento = TxtFraccionamiento.Text, + Ubicacion = TxtUbicacion.Text, + Hectareas = hectareasFraccionamiento + }, + CurrentUser.CveUsuario, + CurrentUser.NombreDominio); + } + + if (!resultado.Success) + { + Alert(resultado.UserMessage, TipoMensaje.MsgAdvertencia); + return; + } + + bool eraNuevo = CveFraccionamientoEdicion <= 0; + CveFraccionamientoEdicion = 0; + Cargar(); + RegistraScript("$('#ModalFraccionamientoCliente').modal('hide');"); + Alert( + eraNuevo + ? "Fraccionamiento registrado." + : "Fraccionamiento actualizado.", + TipoMensaje.ToastExito); + } + + protected void GuardarEtapa_Click(object origen, EventArgs argumentos) + { + if (CveFraccionamientoEtapaActual <= 0) + { + Alert( + "Seleccione un fraccionamiento válido.", + TipoMensaje.MsgAdvertencia); + return; + } + + decimal? hectareas; + + if (!LeerHectareas(TxtHectareasEtapa.Text, out hectareas)) + { + Alert("Capture hectáreas válidas.", TipoMensaje.MsgAdvertencia); + return; + } + + DbResult resultado = AppServices.ServicioPortalCliente.GuardarEtapa( + new ModeloEtapaFraccionamiento + { + CveFraccionamiento = CveFraccionamientoEtapaActual, + Etapa = TxtEtapa.Text, + Hectareas = hectareas, + Fideicomiso = ChkFideicomisoEtapa.Checked, + EsActivo = true + }, + CurrentUser.CveUsuario, + CurrentUser.NombreDominio); + + if (!resultado.Success) + { + Alert(resultado.UserMessage, TipoMensaje.MsgAdvertencia); + return; + } + + CveFraccionamientoEtapaActual = 0; + Cargar(); + RegistraScript("$('#ModalEtapaCliente').modal('hide');"); + Alert("Etapa registrada.", TipoMensaje.ToastExito); + } + + protected string UrlDetalleEtapa(object clave) + { + if (clave == null || clave == DBNull.Value) + { + return string.Empty; + } + + int cveEtapa = Convert.ToInt32(clave, CultureInfo.InvariantCulture); + + if (cveEtapa <= 0) + { + return string.Empty; + } + + return ResolveUrl("~/Pages/Clientes/EtapaDetalle.aspx?etapa=") + + cveEtapa.ToString(CultureInfo.InvariantCulture); } protected string ResumenFraccionamiento(object objeto) @@ -86,11 +295,56 @@ namespace SIG.Web.Pages.Clientes fila.NumeroEtapas); } + protected string FormatearHectareas(object objeto) + { + var fila = objeto as ModeloFilaDesarrollos; + + if (fila == null) + { + return string.Empty; + } + + decimal? hectareas = fila.EsFraccionamiento + ? fila.HectareasFraccionamiento + : fila.Hectareas; + + return hectareas.HasValue + ? hectareas.Value.ToString("N2", CultureInfo.CurrentCulture) + : string.Empty; + } + + private void AbrirEdicionFraccionamiento(ModeloFraccionamiento fraccionamiento) + { + CveFraccionamientoEdicion = fraccionamiento.CveFraccionamiento; + LitTituloFraccionamiento.Text = "Editar fraccionamiento"; + TxtFraccionamiento.Text = fraccionamiento.Fraccionamiento; + TxtUbicacion.Text = fraccionamiento.Ubicacion; + TxtHectareasFraccionamiento.Text = fraccionamiento.Hectareas.HasValue + ? fraccionamiento.Hectareas.Value.ToString( + CultureInfo.InvariantCulture) + : string.Empty; + PnlEtapaInicial.Visible = false; + UpModalFraccionamiento.Update(); + RegistraScript("$('#ModalFraccionamientoCliente').modal('show');"); + } + + private void AbrirAltaEtapa(ModeloFraccionamiento fraccionamiento) + { + CveFraccionamientoEtapaActual = fraccionamiento.CveFraccionamiento; + LitFraccionamientoEtapa.Text = fraccionamiento.Fraccionamiento; + TxtEtapa.Text = string.Empty; + TxtHectareasEtapa.Text = string.Empty; + ChkFideicomisoEtapa.Checked = false; + UpModalEtapa.Update(); + RegistraScript("$('#ModalEtapaCliente').modal('show');"); + } + private void Cargar() { - var resultado = AppServices.ServicioPortalCliente.ListarDesarrollos( - CurrentUser.CveUsuario, - CurrentUser.NombreDominio); + DbResult> resultado = + AppServices.ServicioPortalCliente.ListarDesarrollos( + CurrentUser.CveUsuario, + CurrentUser.NombreDominio); GvDesarrollos.DataSource = resultado.Success ? resultado.Data @@ -103,5 +357,31 @@ namespace SIG.Web.Pages.Clientes Alert(resultado.UserMessage, TipoMensaje.MsgAdvertencia); } } + + private static bool LeerHectareas(string texto, out decimal? hectareas) + { + hectareas = null; + + if (string.IsNullOrWhiteSpace(texto)) + { + return true; + } + + decimal valor; + + if (!decimal.TryParse( + texto.Trim(), + NumberStyles.AllowDecimalPoint, + CultureInfo.InvariantCulture, + out valor) || + valor < 0m || + valor > 999999999.9999m) + { + return false; + } + + hectareas = valor; + return true; + } } } diff --git a/SIG.Web/Pages/Clientes/EtapaDetalle.aspx b/SIG.Web/Pages/Clientes/EtapaDetalle.aspx new file mode 100644 index 0000000..7b869f3 --- /dev/null +++ b/SIG.Web/Pages/Clientes/EtapaDetalle.aspx @@ -0,0 +1,92 @@ +<%@ Page Title="Detalle de etapa" Language="C#" MasterPageFile="~/Site.master" + AutoEventWireup="true" CodeFile="EtapaDetalle.aspx.cs" + Inherits="SIG.Web.Pages.Clientes.EtapaDetalle" %> +<%@ Register TagPrefix="cliente" TagName="Tramites" Src="~/UserControl/Clientes/TramitesCliente.ascx" %> +<%@ Register TagPrefix="cliente" TagName="Documentos" Src="~/UserControl/Clientes/DocumentosCliente.ascx" %> +<%@ Register TagPrefix="cliente" TagName="Pagos" Src="~/UserControl/Clientes/PagosCliente.ascx" %> + + + + + + + +
+ + + Regresar a desarrollos + +
+ +
+

+ +

+
+ + Fraccionamiento: + + + + Hectáreas: + + + + Avance: + + + + Fideicomiso: + + +
+
+ + + + + + + + + + + + + + + + + + + + +
+
+ + + diff --git a/SIG.Web/Pages/Clientes/EtapaDetalle.aspx.cs b/SIG.Web/Pages/Clientes/EtapaDetalle.aspx.cs new file mode 100644 index 0000000..4d59550 --- /dev/null +++ b/SIG.Web/Pages/Clientes/EtapaDetalle.aspx.cs @@ -0,0 +1,123 @@ +using System; +using System.Globalization; +using SIG.Web.AppCode.Configuration; +using SIG.Web.AppCode.Infrastructure.WebForms; +using SIG.Web.AppCode.Models.Common; +using SIG.Web.AppCode.Models.Fraccionamientos; +using SIG.Web.AppCode.Security; + +namespace SIG.Web.Pages.Clientes +{ + public partial class EtapaDetalle : ClsPaginaBase + { + #region Propiedades + + private int CveFraccionamientoEtapaActual + { + get { return (int?)ViewState["CveFraccionamientoEtapaActual"] ?? 0; } + set { ViewState["CveFraccionamientoEtapaActual"] = value; } + } + + #endregion + + protected void Page_Load(object origen, EventArgs argumentos) + { + if (IsPostBack) + { + return; + } + + int cveFraccionamientoEtapa; + + if (!int.TryParse( + Request.QueryString["etapa"], + NumberStyles.Integer, + CultureInfo.InvariantCulture, + out cveFraccionamientoEtapa) || + cveFraccionamientoEtapa <= 0) + { + PanelContenido.Visible = false; + Alert( + "Seleccione una etapa válida.", + TipoMensaje.MsgAdvertencia); + return; + } + + CveFraccionamientoEtapaActual = cveFraccionamientoEtapa; + Cargar(); + } + + private void Cargar() + { + DbResult etapa = + AppServices.ServicioPortalCliente.ObtenerEtapa( + CveFraccionamientoEtapaActual, + CurrentUser.CveUsuario, + CurrentUser.NombreDominio); + + if (!etapa.Success || etapa.Data == null) + { + PanelContenido.Visible = false; + Alert( + etapa.Success + ? "No se encontró la etapa." + : etapa.UserMessage, + TipoMensaje.MsgAdvertencia); + return; + } + + DbResult fraccionamiento = + AppServices.ServicioPortalCliente.ObtenerFraccionamiento( + etapa.Data.CveFraccionamiento, + CurrentUser.CveUsuario, + CurrentUser.NombreDominio); + + if (!fraccionamiento.Success || fraccionamiento.Data == null) + { + PanelContenido.Visible = false; + Alert( + fraccionamiento.Success + ? "No se encontró el fraccionamiento." + : fraccionamiento.UserMessage, + TipoMensaje.MsgAdvertencia); + return; + } + + ModeloEtapaFraccionamiento datosEtapa = etapa.Data; + ModeloFraccionamiento datosFraccionamiento = fraccionamiento.Data; + + LitEtapa.Text = datosEtapa.Etapa; + LitHectareas.Text = datosEtapa.Hectareas.HasValue + ? datosEtapa.Hectareas.Value.ToString( + "N2", + CultureInfo.CurrentCulture) + : string.Empty; + LitAvance.Text = datosEtapa.Avance.ToString( + "N2", + CultureInfo.CurrentCulture) + " %"; + LitFideicomiso.Text = datosEtapa.Fideicomiso == true + ? "Sí" + : "No"; + + LnkFraccionamiento.Text = datosFraccionamiento.Fraccionamiento; + LnkFraccionamiento.NavigateUrl = ResolveUrl( + "~/Pages/Clientes/FraccionamientoDetalle.aspx?id=") + + datosFraccionamiento.CveFraccionamiento.ToString( + CultureInfo.InvariantCulture); + + Page.Title = datosEtapa.Etapa; + + UcTramites.Cargar( + datosFraccionamiento.CveFraccionamiento, + datosEtapa.CveFraccionamientoEtapa); + UcDocumentos.Cargar( + datosFraccionamiento.CveFraccionamiento, + datosEtapa.CveFraccionamientoEtapa, + false); + UcPagos.Cargar( + datosFraccionamiento.CveFraccionamiento, + datosEtapa.CveFraccionamientoEtapa, + false); + } + } +} diff --git a/SIG.Web/UserControl/Clientes/DocumentosCliente.ascx.cs b/SIG.Web/UserControl/Clientes/DocumentosCliente.ascx.cs index 9ea4e65..2dea20b 100644 --- a/SIG.Web/UserControl/Clientes/DocumentosCliente.ascx.cs +++ b/SIG.Web/UserControl/Clientes/DocumentosCliente.ascx.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -30,6 +30,12 @@ namespace SIG.Web.UserControl.Clientes set { ViewState["CveFraccionamientoFijo"] = value; } } + private int? CveFraccionamientoEtapaFija + { + get { return (int?)ViewState["CveFraccionamientoEtapaFija"]; } + set { ViewState["CveFraccionamientoEtapaFija"] = value; } + } + private bool MostrarFiltrosActual { get { return (bool?)ViewState["MostrarFiltrosActual"] ?? false; } @@ -81,13 +87,27 @@ namespace SIG.Web.UserControl.Clientes public void Cargar( int? cveFraccionamiento, bool mostrarFiltros) + { + Cargar( + cveFraccionamiento, + null, + mostrarFiltros); + } + + public void Cargar( + int? cveFraccionamiento, + int? cveFraccionamientoEtapa, + bool mostrarFiltros) { CveFraccionamientoFijo = cveFraccionamiento; + CveFraccionamientoEtapaFija = cveFraccionamientoEtapa; MostrarFiltrosActual = mostrarFiltros; PanelFiltros.Visible = mostrarFiltros; FiltroDocumentosCliente filtro = FiltroActual; - filtro.CveFraccionamiento = cveFraccionamiento ?? filtro.CveFraccionamiento; + filtro.CveFraccionamiento = + cveFraccionamiento ?? filtro.CveFraccionamiento; + filtro.CveFraccionamientoEtapa = cveFraccionamientoEtapa; FiltroActual = filtro; Refrescar(); @@ -110,8 +130,12 @@ namespace SIG.Web.UserControl.Clientes { FiltroActual = new FiltroDocumentosCliente { - CveFraccionamiento = CveFraccionamientoFijo ?? LeerClave(DdlFraccionamientoFiltro), - CveFraccionamientoEtapa = LeerClave(DdlEtapaFiltro), + CveFraccionamiento = + CveFraccionamientoFijo ?? + LeerClave(DdlFraccionamientoFiltro), + CveFraccionamientoEtapa = + CveFraccionamientoEtapaFija ?? + LeerClave(DdlEtapaFiltro), Agrupacion = string.IsNullOrWhiteSpace(DdlAgrupacionFiltro.SelectedValue) ? null : DdlAgrupacionFiltro.SelectedValue @@ -132,7 +156,8 @@ namespace SIG.Web.UserControl.Clientes filtro.CveFraccionamiento = null; } - if (!nombres.Contains("Etapa")) + if (!nombres.Contains("Etapa") && + !CveFraccionamientoEtapaFija.HasValue) { filtro.CveFraccionamientoEtapa = null; } diff --git a/SIG.Web/UserControl/Clientes/PagosCliente.ascx.cs b/SIG.Web/UserControl/Clientes/PagosCliente.ascx.cs index 36ede00..40cbc91 100644 --- a/SIG.Web/UserControl/Clientes/PagosCliente.ascx.cs +++ b/SIG.Web/UserControl/Clientes/PagosCliente.ascx.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; @@ -29,6 +29,12 @@ namespace SIG.Web.UserControl.Clientes set { ViewState["CveFraccionamientoFijo"] = value; } } + private int? CveFraccionamientoEtapaFija + { + get { return (int?)ViewState["CveFraccionamientoEtapaFija"]; } + set { ViewState["CveFraccionamientoEtapaFija"] = value; } + } + private bool MostrarFiltrosActual { get { return (bool?)ViewState["MostrarFiltrosActual"] ?? false; } @@ -81,13 +87,27 @@ namespace SIG.Web.UserControl.Clientes public void Cargar( int? cveFraccionamiento, bool mostrarFiltros) + { + Cargar( + cveFraccionamiento, + null, + mostrarFiltros); + } + + public void Cargar( + int? cveFraccionamiento, + int? cveFraccionamientoEtapa, + bool mostrarFiltros) { CveFraccionamientoFijo = cveFraccionamiento; + CveFraccionamientoEtapaFija = cveFraccionamientoEtapa; MostrarFiltrosActual = mostrarFiltros; PanelFiltros.Visible = mostrarFiltros; FiltroPagosCliente filtro = FiltroActual; - filtro.CveFraccionamiento = cveFraccionamiento ?? filtro.CveFraccionamiento; + filtro.CveFraccionamiento = + cveFraccionamiento ?? filtro.CveFraccionamiento; + filtro.CveFraccionamientoEtapa = cveFraccionamientoEtapa; FiltroActual = filtro; Refrescar(); @@ -110,8 +130,12 @@ namespace SIG.Web.UserControl.Clientes { FiltroActual = new FiltroPagosCliente { - CveFraccionamiento = CveFraccionamientoFijo ?? LeerClave(DdlFraccionamientoFiltro), - CveFraccionamientoEtapa = LeerClave(DdlEtapaFiltro), + CveFraccionamiento = + CveFraccionamientoFijo ?? + LeerClave(DdlFraccionamientoFiltro), + CveFraccionamientoEtapa = + CveFraccionamientoEtapaFija ?? + LeerClave(DdlEtapaFiltro), Agrupacion = string.IsNullOrWhiteSpace(DdlAgrupacionFiltro.SelectedValue) ? null : DdlAgrupacionFiltro.SelectedValue @@ -132,7 +156,8 @@ namespace SIG.Web.UserControl.Clientes filtro.CveFraccionamiento = null; } - if (!nombres.Contains("Etapa")) + if (!nombres.Contains("Etapa") && + !CveFraccionamientoEtapaFija.HasValue) { filtro.CveFraccionamientoEtapa = null; } diff --git a/SIG.Web/UserControl/Clientes/TramitesCliente.ascx.cs b/SIG.Web/UserControl/Clientes/TramitesCliente.ascx.cs index 7a882cc..61ef48a 100644 --- a/SIG.Web/UserControl/Clientes/TramitesCliente.ascx.cs +++ b/SIG.Web/UserControl/Clientes/TramitesCliente.ascx.cs @@ -32,11 +32,31 @@ namespace SIG.Web.UserControl.Clientes } } + private int? CveFraccionamientoEtapaActual + { + get + { + return (int?)ViewState["CveFraccionamientoEtapaActual"]; + } + set + { + ViewState["CveFraccionamientoEtapaActual"] = value; + } + } + #endregion public void Cargar(int cveFraccionamiento) + { + Cargar(cveFraccionamiento, null); + } + + public void Cargar( + int cveFraccionamiento, + int? cveFraccionamientoEtapa) { CveFraccionamientoActual = cveFraccionamiento; + CveFraccionamientoEtapaActual = cveFraccionamientoEtapa; Refrescar(); } @@ -113,6 +133,7 @@ namespace SIG.Web.UserControl.Clientes var resultado = AppServices.ServicioPortalCliente.ListarTramites( CveFraccionamientoActual, + CveFraccionamientoEtapaActual, usuario.CveUsuario, usuario.NombreDominio);