public void EstablecerPaqueteNavegacion(string Nombre, int?UnidadID)
        {
            FlotaRDBOF elementoBO = this.UnidadesRD.Find(p => p.Unidad.UnidadID.HasValue && p.Unidad.UnidadID.Value == UnidadID);

            if (elementoBO != null)
            {
                switch (Nombre)
                {
                case "RegistrarReservacionUI":
                    Session[Nombre] = elementoBO.Unidad;
                    break;

                case "DetalleFlotaUI":
                    Session[Nombre] = new ElementoFlotaBO {
                        Unidad = elementoBO.Unidad
                    };
                    break;

                case "ContratoRDBO":
                    Session[Nombre] = new ContratoRDBOF {
                        ContratoID = elementoBO.ContratoID
                    };
                    break;
                }
            }
            else
            {
                throw new Exception(this.ToString() + ".EstablecerPaqueteNavegacion: La unidad seleccionada no se encuentra dentro del listado de unidades encintradas.");
            }
        }
        private FlotaRDBOF InterfazUsuarioADato()
        {
            FlotaRDBOF bo = new FlotaRDBOF();

            bo.Unidad                          = new Equipos.BO.UnidadBO();
            bo.Unidad.Modelo                   = new ModeloBO();
            bo.Unidad.Modelo.Marca             = new MarcaBO();
            bo.Unidad.Sucursal                 = new Basicos.BO.SucursalBO();
            bo.Unidad.Sucursal.UnidadOperativa = new UnidadOperativaBO();
            bo.Cliente                         = new CuentaClienteIdealeaseBO();
            bo.Cliente.UnidadOperativa         = new UnidadOperativaBO();
            bo.Unidad.NumeroEconomico          = this.vista.NumeroEconomico;
            if (vista.MarcaID != null)
            {
                bo.Unidad.Modelo.Marca.Id     = this.vista.MarcaID;
                bo.Unidad.Modelo.Marca.Nombre = this.vista.MarcaNombre;
            }
            if (vista.ModeloID != null)
            {
                bo.Unidad.Modelo.Id     = this.vista.ModeloID;
                bo.Unidad.Modelo.Nombre = this.vista.ModeloNombre;
            }
            if (vista.SucursalID != null)
            {
                bo.Unidad.Sucursal.Id     = this.vista.SucursalID;
                bo.Unidad.Sucursal.Nombre = this.vista.SucursalNombre;
            }
            else
            {
                bo.Sucursales = FacadeBR.ConsultarSucursalesSeguridad(this.dctx, new SeguridadBO(Guid.Empty, new UsuarioBO()
                {
                    Id = this.vista.UsuarioAutenticado
                }, new AdscripcionBO {
                    UnidadOperativa = new UnidadOperativaBO()
                    {
                        Id = this.vista.UnidadOperativaID
                    }
                }));
            }
            if (vista.CuentaClienteID != null)
            {
                bo.Cliente.Id     = this.vista.CuentaClienteID;
                bo.Cliente.Nombre = this.vista.CuentaClienteNombre;
            }


            if (this.vista.EstatusUnidad.HasValue)
            {
                bo.Estatus = this.vista.EstatusUnidad;
            }

            bo.EstaEnTaller         = this.vista.EstaEnTaller;
            bo.EstaReservada        = this.vista.EstaReservada;
            bo.NumeroContrato       = this.vista.NumeroContrato;
            bo.FechaContratoInicial = this.vista.FechaContratoInicial;
            bo.FechaContratoFinal   = this.vista.FechaContratoFinal;

            return(bo);
        }
        public void Consultar()
        {
            try {
                FlotaRDBOF bo = (FlotaRDBOF)this.InterfazUsuarioADato();

                List <FlotaRDBOF> unidadesRD = controlador.ConsultarTableroRentaDiaria(dctx, bo);

                this.vista.UnidadesRD = unidadesRD;
                this.vista.ActualizarResultado();

                if (unidadesRD.Count < 1)
                {
                    this.vista.MostrarMensaje("La búsqueda no produjo resultados", ETipoMensajeIU.INFORMACION,
                                              "No se encontraron coincidencias con los criterios ingresados. Verifique sus datos");
                }
            } catch (Exception ex) {
                throw new Exception(this.nombreClase + ".Consultar: " + ex.Message);
            }
        }
 public void VerDetallesContrato(int?unidadID)
 {
     if (unidadID.HasValue)
     {
         FlotaRDBOF elementoBO = vista.UnidadesRD.Find(p => p.Unidad.UnidadID.HasValue && p.Unidad.UnidadID.Value == unidadID);
         if (elementoBO.ContratoID != null)
         {
             this.vista.EstablecerPaqueteNavegacion("ContratoRDBO", unidadID);
             this.vista.RedirigirADetallesContrato();
         }
         else
         {
             this.vista.MostrarMensaje("La unidad seleccionada no cuenta con ningún contrato.", ETipoMensajeIU.ADVERTENCIA);
         }
     }
     else
     {
         this.vista.MostrarMensaje("No se ha proporcionado el identificador de la unidad que se quiere consultar el detalle de su contrato.", ETipoMensajeIU.ADVERTENCIA);
     }
 }
        protected void grdTableroRD_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            try{
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    FlotaRDBOF bo = (FlotaRDBOF)e.Row.DataItem;


                    Label labelEstatus = e.Row.FindControl("lblEstatus") as Label;
                    if (labelEstatus != null)
                    {
                        string Estatus = string.Empty;
                        if (bo.EstaReservada == true && bo.ContratoID == null)
                        {
                            Estatus = "PEDIDA";
                        }
                        if (bo.ContratoID != null)
                        {
                            Estatus = "RENTADA";
                        }
                        if (bo.ContratoID == null && bo.EstaReservada == false)
                        {
                            Estatus = "DISPONIBLE";
                        }
                        labelEstatus.Text = Estatus;
                    }

                    Label labelNumeroEconomico = e.Row.FindControl("lblNumeroEconomico") as Label;
                    if (labelNumeroEconomico != null)
                    {
                        string numeroEconomico = string.Empty;
                        if (bo.Unidad.NumeroEconomico != null)
                        {
                            numeroEconomico = bo.Unidad.NumeroEconomico;
                        }
                        labelNumeroEconomico.Text = numeroEconomico;
                    }

                    Label labelModelo = e.Row.FindControl("lblModelo") as Label;
                    if (labelModelo != null)
                    {
                        string modelo = string.Empty;
                        if (bo.Unidad.Modelo != null)
                        {
                            modelo = bo.Unidad.Modelo.Nombre;
                        }
                        labelModelo.Text = modelo;
                    }

                    Label labelSucursal = e.Row.FindControl("lblSucursal") as Label;
                    if (labelSucursal != null)
                    {
                        string sucursal = string.Empty;
                        if (bo.Unidad.Sucursal != null)
                        {
                            sucursal = bo.Unidad.Sucursal.Nombre;
                        }
                        labelSucursal.Text = sucursal;
                    }

                    Label labelCliente = e.Row.FindControl("lblCliente") as Label;
                    if (labelCliente != null)
                    {
                        string cliente = string.Empty;
                        if (bo.Cliente != null)
                        {
                            cliente = bo.Cliente.Nombre;
                        }
                        labelCliente.Text = cliente;
                    }

                    Label labelEstaEnTaller = e.Row.FindControl("lblEstaEnTaller") as Label;
                    if (labelEstaEnTaller != null)
                    {
                        string estaEnTaller = string.Empty;

                        if (bo.Unidad != null && bo.Unidad.EstatusActual != null)
                        {
                            if (bo.Unidad.EstatusActual == EEstatusUnidad.EnTaller)
                            {
                                estaEnTaller = "SI";
                            }
                            else
                            {
                                estaEnTaller = "NO";
                            }
                        }

                        labelEstaEnTaller.Text = estaEnTaller;
                    }

                    Label labelEstaReservada = e.Row.FindControl("lblEstaReservada") as Label;
                    if (labelEstaReservada != null)
                    {
                        string estaReservada = string.Empty;
                        if (bo.EstaReservada.HasValue)
                        {
                            if (bo.EstaReservada.Value)
                            {
                                estaReservada = "SI";
                            }
                            else
                            {
                                estaReservada = "NO";
                            }
                        }
                        labelEstaReservada.Text = estaReservada;
                    }
                }
            } catch (Exception ex) {
                this.MostrarMensaje("Inconsistencia al ejecutar la acción sobre la unidad de renta diaria", ETipoMensajeIU.ERROR, nombreClase + ".grdTableroRD_RowDataBound:" + ex.Message);
            }
        }