/// <summary> /// Prepara la vista para la reasignacion de la unidad /// </summary> public void PrepararEdicion() { try { //Obtenemos el paquete correspondiente al contrato a editar var unidad = this.vista.ObtenerPaqueteNavegacion("UnidadExpedienteBO"); //Validaciones iniciales if (ReferenceEquals(unidad, null)) { throw new Exception("Se esperaba un objeto en la navegación. No fue posible identificar la unidad que se desea mover."); } if (!(unidad is UnidadBO)) { throw new Exception("El paquete recuperado no corresponde a una unidad, verifique su información."); } var unidadAnterior = new UnidadBO((UnidadBO)unidad); var unidadBase = new ElementoFlotaBOF { Unidad = new UnidadBO() }; //Eliminamos el paquete de navegación this.vista.LimpiarPaqueteNavegacion("UnidadExpedienteBO"); //Consultamos la unidad para el último objeto unidadAnterior = this.ObtenerUnidad(unidadAnterior); this.vista.UltimoObjeto = unidadAnterior; //Consultamos la unidad para el elemento a editar unidadBase.Unidad.UnidadID = unidadAnterior.UnidadID; unidadBase = this.ObtenerElemento(unidadBase.Unidad); if (unidadBase == null) { unidadBase = new ElementoFlotaBOF(); } if (unidadBase != null && unidadBase.Unidad == null) { unidadBase.Unidad = new UnidadBO(); } //Cargamos el objeto a edición this.vista.ObjetoEdicion = unidadBase.Unidad; if (!unidadBase.Unidad.EstatusActual.HasValue) { throw new Exception("El estatus de la unidad no fue recuperado, para continuar con la reactivación es necesario especificar el estatus actual de la unidad."); } //Validar estatus de acuerdo a regla if (!unidadAnterior.ValidarCambioEstatus(unidadBase.Unidad.EstatusActual)) { string mnj = "No se puede cambiar el estatus de la unidad de " + (unidadAnterior.EstatusActual != null ? unidadAnterior.EstatusActual.ToString() : "") + " a " + (unidadBase.Unidad.EstatusActual != null ? unidadBase.Unidad.EstatusActual.ToString() : ""); this.vista.PermitirRegistrar(false); this.vista.MostrarMensaje(mnj, ETipoMensajeIU.ADVERTENCIA, null); } #region SC0009 - Adición de validación para estatus de siniestro if (unidadBase.Unidad.EstatusActual.Value != EEstatusUnidad.Baja && unidadBase.Unidad.EstatusActual.Value != EEstatusUnidad.Siniestro) { this.vista.PermitirRegistrar(false); this.vista.MostrarMensaje("No se puede reactivar la unidad, porque esta se encuentra en uso, verifique su información", ETipoMensajeIU.ADVERTENCIA, null); } #endregion //Desplegamos la unidad obtenida this.DatoAInterfazUsuario(unidadBase); this.EstablecerSeguridad(); } catch (Exception ex) { this.vista.PermitirRegistrar(false); throw new Exception(string.Format("{0}.PrepararEdicion:{1}{2}", nombreClase, Environment.NewLine, ex.Message)); } }
/// <summary> /// Despliega en la vista la inforamciónd e la unidad que se haya recuperado /// </summary> /// <param name="unidadBase">Unidad que se desea visualizar</param> private void DatoAInterfazUsuario(ElementoFlotaBOF unidadBase) { var elemento = unidadBase; #region Datos Elemento #region Nuevo elemento if (elemento == null) { elemento.Unidad = new UnidadBO { Cliente = new ClienteBO(), Sucursal = new SucursalBO { UnidadOperativa = new UnidadOperativaBO() }, Modelo = new ModeloBO { Marca = new MarcaBO() }, ActivoFijo = new ActivoFijoBO(), CaracteristicasUnidad = new CaracteristicasUnidadBO(), EquiposAliados = new List <EquipoAliadoBO>(), TipoEquipoServicio = new TipoUnidadBO(), }; elemento.Tramites = new List <TramiteBO>(); elemento.Contrato = new ContratoProxyBO { Cliente = new CuentaClienteIdealeaseBO() }; } #endregion #region Instanciar Propiedades if (elemento.Unidad == null) { elemento.Unidad = new UnidadBO { Cliente = new ClienteBO(), Sucursal = new SucursalBO { UnidadOperativa = new UnidadOperativaBO() }, Modelo = new ModeloBO { Marca = new MarcaBO() }, ActivoFijo = new ActivoFijoBO(), CaracteristicasUnidad = new CaracteristicasUnidadBO(), EquiposAliados = new List <EquipoAliadoBO>(), TipoEquipoServicio = new TipoUnidadBO(), }; } if (elemento.Unidad.Cliente == null) { elemento.Unidad.Cliente = new ClienteBO(); } if (elemento.Unidad.Sucursal == null) { elemento.Unidad.Sucursal = new SucursalBO { UnidadOperativa = new UnidadOperativaBO() } } ; if (elemento.Unidad.Sucursal.UnidadOperativa == null) { elemento.Unidad.Sucursal.UnidadOperativa = new UnidadOperativaBO(); } if (elemento.Unidad.Modelo == null) { elemento.Unidad.Modelo = new ModeloBO { Marca = new MarcaBO() } } ; if (elemento.Unidad.Modelo.Marca == null) { elemento.Unidad.Modelo.Marca = new MarcaBO(); } if (elemento.Unidad.ActivoFijo == null) { elemento.Unidad.ActivoFijo = new ActivoFijoBO(); } if (elemento.Unidad.CaracteristicasUnidad == null) { elemento.Unidad.CaracteristicasUnidad = new CaracteristicasUnidadBO(); } if (elemento.Unidad.EquiposAliados == null) { elemento.Unidad.EquiposAliados = new List <EquipoAliadoBO>(); } if (elemento.Unidad.TipoEquipoServicio == null) { elemento.Unidad.TipoEquipoServicio = new TipoUnidadBO(); } if (elemento.Tramites == null) { elemento.Tramites = new List <TramiteBO>(); } if (elemento.Contrato == null) { elemento.Contrato = new ContratoProxyBO { Cliente = new CuentaClienteIdealeaseBO() } } ; if (elemento.Contrato.Cliente == null) { elemento.Contrato.Cliente = new CuentaClienteIdealeaseBO(); } #endregion #region Información de la Unidad en barra this.vista.EstaDisponible = elemento.EstaDisponible; this.vista.EstaEnContrato = elemento.EstaEnRenta; this.vista.TieneEquipoAliado = elemento.TieneEquipoAliado; #region Tramites PlacaEstatalBO tPlacaEstatal = (PlacaEstatalBO)elemento.Tramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_ESTATAL); PlacaFederalBO tPlacaFederal = (PlacaFederalBO)elemento.Tramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_FEDERAL); this.vista.NumeroPlaca = tPlacaFederal != null ? tPlacaFederal.Numero : (tPlacaEstatal != null ? tPlacaEstatal.Numero : null); #endregion #endregion #endregion #region Datos Unidad var bo = unidadBase.Unidad; #region Unidad Nueva if (ReferenceEquals(bo, null)) { bo = new UnidadBO { ActivoFijo = new ActivoFijoBO(), EquiposAliados = new List <EquipoAliadoBO>(), Modelo = new ModeloBO { Marca = new MarcaBO() }, Sucursal = new SucursalBO { UnidadOperativa = new UnidadOperativaBO() }, TipoEquipoServicio = new TipoUnidadBO() }; } #endregion #region Instancias de propiedades if (bo.TipoEquipoServicio == null) { bo.TipoEquipoServicio = new TipoUnidadBO(); } if (bo.ActivoFijo == null) { bo.ActivoFijo = new ActivoFijoBO(); } if (bo.EquiposAliados == null) { bo.EquiposAliados = new List <EquipoAliadoBO>(); } if (bo.Modelo == null) { bo.Modelo = new ModeloBO { Marca = new MarcaBO() } } ; if (bo.Sucursal == null) { bo.Sucursal = new SucursalBO { UnidadOperativa = new UnidadOperativaBO() } } ; #endregion #region DetalleUnidad this.vista.UnidadID = bo.UnidadID; this.vista.NumeroSerie = bo.NumeroSerie; this.vista.ClaveActivoOracle = bo.ClaveActivoOracle; this.vista.LiderID = bo.IDLider; this.vista.NumeroEconomico = bo.NumeroEconomico; this.vista.TipoUnidadNombre = bo.TipoEquipoServicio.Nombre; this.vista.ModeloNombre = bo.Modelo.Nombre; this.vista.Anio = bo.Anio; this.vista.FechaCompra = bo.ActivoFijo.FechaFacturaCompra; this.vista.MontoFactura = bo.ActivoFijo.CostoSinIva; this.vista.FolioFactura = string.Empty; #endregion #region Info Sucursal bool completa = false; this.vista.SucursalActualID = bo.Sucursal.Id; this.vista.SucursalActualNombre = bo.Sucursal.Nombre; #region Empresa var empresa = new EmpresaBO(); if (bo.Sucursal.UnidadOperativa != null) { this.vista.EmpresaActualID = bo.Sucursal.UnidadOperativa.Id; if (bo.Sucursal.UnidadOperativa.Empresa == null) { #region Unidad Operativa //Obtener información de la Unidad Operativa List <UnidadOperativaBO> lstUO = FacadeBR.ConsultarUnidadOperativaCompleto(this.dctx, new UnidadOperativaBO() { Id = this.vista .UnidadOperativaID }); if (lstUO.Count <= 0) { throw new Exception( "No se encontró la información completa de la unidad operativa sobre la que trabaja."); } //Establecer la información de la Unidad Operativa if (lstUO[0].Empresa != null) { empresa = lstUO[0].Empresa; } #endregion this.vista.EmpresaActualNombre = empresa.Nombre; } else { if (!string.IsNullOrEmpty(bo.Sucursal.UnidadOperativa.Empresa.Nombre) && !string.IsNullOrWhiteSpace(bo.Sucursal.UnidadOperativa.Empresa.Nombre)) { this.vista.EmpresaActualNombre = bo.Sucursal.UnidadOperativa.Empresa.Nombre; } else { #region Unidad Operativa //Obtener información de la Unidad Operativa List <UnidadOperativaBO> lstUO = FacadeBR.ConsultarUnidadOperativaCompleto(this.dctx, new UnidadOperativaBO() { Id = this.vista .UnidadOperativaID }); if (lstUO.Count <= 0) { throw new Exception( "No se encontró la información completa de la unidad operativa sobre la que trabaja."); } //Establecer la información de la Unidad Operativa if (lstUO[0].Empresa != null) { empresa = lstUO[0].Empresa; } #endregion this.vista.EmpresaActualNombre = empresa.Nombre; } } } #endregion #region Domicilio Sucursal if (bo.Sucursal.DireccionesSucursal != null) { if (bo.Sucursal.DireccionesSucursal.Count > 0) { var direccionActual = bo.Sucursal.DireccionesSucursal.Find(p => p.Primaria != null && p.Primaria == true); if (direccionActual != null) { string dir = ""; if (!string.IsNullOrEmpty(direccionActual.Calle)) { dir += (direccionActual.Calle + " "); } if (!string.IsNullOrEmpty(direccionActual.Colonia)) { dir += (direccionActual.Colonia + " "); } if (!string.IsNullOrEmpty(direccionActual.CodigoPostal)) { dir += (direccionActual.CodigoPostal + " "); } if (direccionActual.Ubicacion != null) { if (direccionActual.Ubicacion.Municipio != null && !string.IsNullOrEmpty(direccionActual.Ubicacion.Municipio.Nombre)) { dir += (direccionActual.Ubicacion.Municipio.Nombre + " "); } if (direccionActual.Ubicacion.Ciudad != null && !string.IsNullOrEmpty(direccionActual.Ubicacion.Ciudad.Nombre)) { dir += (direccionActual.Ubicacion.Ciudad.Nombre + " "); } if (direccionActual.Ubicacion.Estado != null && !string.IsNullOrEmpty(direccionActual.Ubicacion.Estado.Nombre)) { dir += (direccionActual.Ubicacion.Estado.Nombre + " "); } if (direccionActual.Ubicacion.Pais != null && !string.IsNullOrEmpty(direccionActual.Ubicacion.Pais.Nombre)) { dir += (direccionActual.Ubicacion.Pais.Nombre + " "); } } if (dir != null && dir.Trim().CompareTo("") != 0) { this.vista.DomicilioSucursalActual = dir; completa = true; } else { this.vista.DomicilioSucursalActual = null; } } else { this.vista.DomicilioSucursalActual = null; } } else { this.vista.DomicilioSucursalActual = null; } } #endregion #region Consultar Completo para obtener la Dirección if (bo.Sucursal != null && bo.Sucursal.Id != null && !completa) { List <SucursalBO> lst = FacadeBR.ConsultarSucursalCompleto(this.dctx, bo.Sucursal); DireccionSucursalBO direccion = null; if (lst.Count > 0 && lst[0].DireccionesSucursal != null) { direccion = lst[0].DireccionesSucursal.Find(p => p.Primaria != null && p.Primaria == true); } if (direccion != null) { string dir = ""; if (!string.IsNullOrEmpty(direccion.Calle)) { dir += (direccion.Calle + " "); } if (!string.IsNullOrEmpty(direccion.Colonia)) { dir += (direccion.Colonia + " "); } if (!string.IsNullOrEmpty(direccion.CodigoPostal)) { dir += (direccion.CodigoPostal + " "); } if (direccion.Ubicacion != null) { if (direccion.Ubicacion.Municipio != null && !string.IsNullOrEmpty(direccion.Ubicacion.Municipio.Nombre)) { dir += (direccion.Ubicacion.Municipio.Nombre + " "); } if (direccion.Ubicacion.Ciudad != null && !string.IsNullOrEmpty(direccion.Ubicacion.Ciudad.Nombre)) { dir += (direccion.Ubicacion.Ciudad.Nombre + " "); } if (direccion.Ubicacion.Estado != null && !string.IsNullOrEmpty(direccion.Ubicacion.Estado.Nombre)) { dir += (direccion.Ubicacion.Estado.Nombre + " "); } if (direccion.Ubicacion.Pais != null && !string.IsNullOrEmpty(direccion.Ubicacion.Pais.Nombre)) { dir += (direccion.Ubicacion.Pais.Nombre + " "); } } if (dir != null && dir.Trim().CompareTo("") != 0) { this.vista.DomicilioSucursalActual = dir; completa = true; } else { this.vista.DomicilioSucursalActual = null; } } else { this.vista.DomicilioSucursalActual = null; } } else if (!completa) { this.vista.DomicilioSucursalActual = null; } #endregion #endregion #endregion }
private void EstablecerDatosNavegacion(object paqueteNavegacion) { try { if (paqueteNavegacion == null) { throw new Exception("Se esperaba un objeto en la navegación. No se puede identificar qué unidad desea dar de alta."); } if (!(paqueteNavegacion is UnidadBO)) { throw new Exception("Se esperaba una unidad."); } UnidadBO boAnterior = (UnidadBO)paqueteNavegacion; var unidadBase = new ElementoFlotaBOF { Unidad = new UnidadBO() }; this.vista.LimpiarPaqueteNavegacion("UnidadExpedienteBO"); boAnterior = this.ObtenerUnidad(boAnterior); this.vista.UltimoObjeto = boAnterior; //Consultamos la unidad para el elemento a editar unidadBase.Unidad.UnidadID = boAnterior.UnidadID; unidadBase = this.ObtenerElemento(unidadBase.Unidad); if (unidadBase == null) { unidadBase = new ElementoFlotaBOF(); } if (unidadBase != null && unidadBase.Unidad == null) { unidadBase.Unidad = new UnidadBO(); } if (!unidadBase.Unidad.EstatusActual.HasValue) { throw new Exception("El estatus de la unidad no fue recuperado, para continuar con la alta de la unidad es necesario especificar el estatus actual de la unidad."); } //Validar estatus de acuerdo a regla if (!boAnterior.ValidarCambioEstatus(unidadBase.Unidad.EstatusActual)) { string mnj = "No se puede cambiar el estatus de la unidad de " + (boAnterior.EstatusActual != null ? boAnterior.EstatusActual.ToString() : "") + " a " + (unidadBase.Unidad.EstatusActual != null ? unidadBase.Unidad.EstatusActual.ToString() : ""); this.vista.PermitirRegistrar(false); this.vista.MostrarMensaje(mnj, ETipoMensajeIU.ADVERTENCIA, null); } if ((unidadBase.Unidad.EstatusActual.Value != EEstatusUnidad.Terminada)) { this.vista.PermitirRegistrar(false); this.vista.MostrarMensaje("No se puede dar de alta la unidad, debido a que no cuenta con el estatus Terminada, verifique su información", ETipoMensajeIU.ADVERTENCIA, null); } this.DatoAInterfazUsuario(unidadBase); } catch (Exception ex) { this.DatoAInterfazUsuario(new UnidadBO()); this.vista.PermitirRegistrar(false); throw new Exception(this.nombreClase + ".EstablecerDatosNavegacion: " + ex.Message); } }
private void DatoAInterfazUsuario(object obj) { if (obj is ElementoFlotaBOF) { ElementoFlotaBOF elemento = (ElementoFlotaBOF)obj; if (elemento == null) { elemento = new ElementoFlotaBOF(); } if (elemento.Unidad == null) { elemento.Unidad = new UnidadBO(); } if (elemento.Contrato == null) { elemento.Contrato = new ContratoProxyBO(); } if (elemento.Contrato.Cliente == null) { elemento.Contrato.Cliente = new CuentaClienteIdealeaseBO(); } if (elemento.Tramites == null) { elemento.Tramites = new List <TramiteBO>(); } //Información de la unidad this.DatoAInterfazUsuario(elemento.Unidad); this.vista.AreaNombre = elemento.AreaText; this.vista.EstatusNombre = elemento.EstatusText; this.vista.EstaDisponible = elemento.EstaDisponible; this.vista.EstaEnContrato = elemento.EstaEnRenta; this.vista.TieneEquipoAliado = elemento.TieneEquipoAliado; //Información de trámites PlacaEstatalBO tPlacaEstatal = (PlacaEstatalBO)elemento.Tramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_ESTATAL); PlacaFederalBO tPlacaFederal = (PlacaFederalBO)elemento.Tramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.PLACA_FEDERAL); SeguroBO tSeguro = (SeguroBO)elemento.Tramites.Find(p => p.Tipo != null && p.Tipo == ETipoTramite.SEGURO); if (tSeguro == null) { tSeguro = new SeguroBO(); } if (tPlacaFederal != null) { this.vista.NumeroPlaca = tPlacaFederal.Numero; this.vista.TipoPlaca = "FEDERAL"; } else { if (tPlacaEstatal != null) { this.vista.NumeroPlaca = tPlacaEstatal.Numero; this.vista.TipoPlaca = "ESTATAL"; } else { this.vista.NumeroPlaca = null; this.vista.TipoPlaca = null; } } this.vista.SeguroID = tSeguro.TramiteID; this.vista.FechaVigenciaSeguroInicial = tSeguro.VigenciaInicial; this.vista.FechaVigenciaSeguroFinal = tSeguro.VigenciaFinal; this.vista.Aseguradora = tSeguro.Aseguradora; this.vista.NumeroPoliza = tSeguro.NumeroPoliza; //Información del contrato this.vista.ContratoID = elemento.Contrato.ContratoID; this.vista.NumeroContrato = elemento.Contrato.NumeroContrato; if (elemento.Contrato.Tipo != null) { this.vista.TipoContratoID = (int)elemento.Contrato.Tipo; } else { this.vista.TipoContratoID = null; } this.vista.CuentaClienteNombre = elemento.Contrato.Cliente.Nombre; this.vista.FechaInicioContrato = elemento.FechaInicioContrato; this.vista.FechaVencimientoContrato = elemento.FechaVencimientoContrato; if (elemento.FechaInicioContrato != null & elemento.FechaVencimientoContrato != null) { this.vista.MesesFaltantesContrato = ((elemento.FechaVencimientoContrato.Value.Year - elemento.FechaInicioContrato.Value.Year) * 12) + elemento.FechaVencimientoContrato.Value.Month - elemento.FechaInicioContrato.Value.Month; } else { this.vista.MesesFaltantesContrato = null; } this.ConfiguracionOpciones(); } if (obj is UnidadBO) { UnidadBO unidad = (UnidadBO)obj; if (unidad == null) { unidad = new UnidadBO(); } if (unidad.ActivoFijo == null) { unidad.ActivoFijo = new ActivoFijoBO(); } if (unidad.Sucursal == null) { unidad.Sucursal = new SucursalBO(); } if (unidad.TipoEquipoServicio == null) { unidad.TipoEquipoServicio = new TipoUnidadBO(); } if (unidad.Modelo == null) { unidad.Modelo = new ModeloBO(); } if (unidad.Modelo.Marca == null) { unidad.Modelo.Marca = new MarcaBO(); } this.vista.UnidadID = unidad.UnidadID; this.vista.EquipoID = unidad.EquipoID; this.vista.IDLider = unidad.IDLider; this.vista.ClaveActivoOracle = unidad.ClaveActivoOracle; this.vista.NumeroSerie = unidad.NumeroSerie; this.vista.NumeroEconomico = unidad.NumeroEconomico; this.vista.Anio = unidad.Anio; if (unidad.Area != null) { this.vista.AreaID = Convert.ToInt32(unidad.Area); } else { this.vista.AreaID = null; } if (unidad.EstatusActual != null) { this.vista.EstatusID = (int)unidad.EstatusActual; } else { this.vista.EstatusID = null; } this.vista.FechaCompra = unidad.ActivoFijo.FechaFacturaCompra; this.vista.MontoFactura = unidad.ActivoFijo.CostoSinIva; if (this.vista.TiempoUsoActivos != null && unidad.ActivoFijo.FechaFacturaCompra != null && unidad.Area != null && (EArea)unidad.Area == EArea.RD) { this.vista.FechaSustitucion = unidad.ActivoFijo.FechaFacturaCompra.Value.AddMonths(this.vista.TiempoUsoActivos.Value); } else { this.vista.FechaSustitucion = null; } //Valores que en un futuro se obtendrán de Oracle pero que por ahora no tenemos this.vista.FolioFactura = null; this.vista.ValorLibros = unidad.ActivoFijo.ImporteResidual; this.vista.ResidualMonto = unidad.ActivoFijo.ImporteResidual; this.vista.ResidualPorcentaje = unidad.ActivoFijo.PorcentajeResidual; this.vista.DepreciacionMensualMonto = unidad.ActivoFijo.ImporteDepreciacion; this.vista.DepreciacionMensualPorcentaje = unidad.ActivoFijo.PorcentajeDepreciacion; this.vista.MesesVidaUtilTotal = null; this.vista.MesesVidaUtilRestante = null; this.vista.ModeloNombre = unidad.Modelo.Nombre; this.vista.TipoUnidadNombre = unidad.TipoEquipoServicio.Nombre; this.vista.SucursalNombre = unidad.Sucursal.Nombre; this.vista.Llantas = unidad.Llantas; this.vista.EquiposAliados = unidad.EquiposAliados; } }
/// <summary> /// Prepara la vista para la reasignacion de la unidad /// </summary> public void PrepararEdicion() { try { //Obtenemos el paquete correspondiente al contrato a editar var unidad = this.vista.ObtenerPaqueteNavegacion("UnidadExpedienteBO"); //Validaciones iniciales if (ReferenceEquals(unidad, null)) { throw new Exception("Se esperaba un objeto en la navegación. No fue posible identificar la unidad que se desea mover."); } if (!(unidad is UnidadBO)) { throw new Exception("El paquete recuperado no corresponde a una unidad, verifique su información."); } var unidadAnterior = new UnidadBO((UnidadBO)unidad); var unidadBase = new ElementoFlotaBOF { Unidad = new UnidadBO() }; //Eliminamos el paquete de navegación this.vista.LimpiarPaqueteNavegacion("UnidadExpedienteBO"); #region Se agrega la sección de documentos adjuntos switch (this.vista.UnidadOperativaID) { case (int)ETipoEmpresa.Generacion: case (int)ETipoEmpresa.Construccion: case (int)ETipoEmpresa.Equinova: //Se establece el modo edición al catálogo de documentos this.presentadorDocumentos.ModoEditable(true); //Se establecen los tipos de archivos que serán permitidos para adjuntar al contrato List <TipoArchivoBO> lstTipoArchivo = new TipoArchivoBR().Consultar(this.dctx, new TipoArchivoBO()); var o = new object(); this.presentadorDocumentos.Vista.Identificador = o.GetHashCode().ToString(); this.presentadorDocumentos.EstablecerTiposArchivo(lstTipoArchivo); this.vista.MostrarSeccionDocumentos(true); this.vista.MostrarSeccionCentroCostos(true); break; default: this.presentadorDocumentos.LimpiarSesion(); this.vista.MostrarSeccionDocumentos(false); this.vista.MostrarSeccionCentroCostos(false); break; } #endregion //Consultamos la unidad para el último objeto unidadAnterior = this.ObtenerUnidad(unidadAnterior); this.vista.UltimoObjeto = unidadAnterior; //Consultamos la unidad para el elemento a editar unidadBase.Unidad.UnidadID = unidadAnterior.UnidadID; unidadBase = this.ObtenerElemento(unidadBase.Unidad); if (unidadBase == null) { unidadBase = new ElementoFlotaBOF(); } if (unidadBase != null && unidadBase.Unidad == null) { unidadBase.Unidad = new UnidadBO(); } //Cargamos el objeto a edición this.vista.ObjetoEdicion = unidadBase.Unidad; if (!unidadBase.Unidad.EstatusActual.HasValue) { throw new Exception("El estatus de la unidad no fue recuperado, para continuar con la baja de unidad es necesario especificar el estatus actual de la unidad."); } //Validar estatus de acuerdo a regla if (!unidadAnterior.ValidarCambioEstatus(unidadBase.Unidad.EstatusActual)) { string mnj = "No se puede cambiar el estatus de la unidad de " + (unidadAnterior.EstatusActual != null ? unidadAnterior.EstatusActual.ToString() : "") + " a " + (unidadBase.Unidad.EstatusActual != null ? unidadBase.Unidad.EstatusActual.ToString() : ""); this.vista.PermitirRegistrar(false); this.vista.MostrarMensaje(mnj, ETipoMensajeIU.ADVERTENCIA, null); } #region SC0006 - Adición de validación para el estatus de Siniestro bool lPermitir = true; switch (this.vista.UnidadOperativaID) { case (int)ETipoEmpresa.Generacion: case (int)ETipoEmpresa.Equinova: case (int)ETipoEmpresa.Construccion: lPermitir = unidadBase.Unidad.EstatusActual != null && (unidadBase.Unidad.EstatusActual == EEstatusUnidad.Disponible || unidadBase.Unidad.EstatusActual == EEstatusUnidad.EnVenta || unidadBase.Unidad.EstatusActual == EEstatusUnidad.Siniestro); break; default: if ((unidadBase.Unidad.EstatusActual.Value != EEstatusUnidad.Disponible) && (unidadBase.Unidad.EstatusActual.Value != EEstatusUnidad.EnTaller) && (unidadBase.Unidad.EstatusActual.Value != EEstatusUnidad.Seminuevo) && (unidadBase.Unidad.EstatusActual.Value != EEstatusUnidad.Siniestro)) { lPermitir = false; this.vista.MostrarMensaje("No se puede dar de baja a la unidad de la sucursal actual, porque esta se encuentra en uso, verifique su información", ETipoMensajeIU.ADVERTENCIA, null); } break; } this.vista.PermitirRegistrar(lPermitir); #endregion //Validamos los equipos aliados if (unidadBase.TieneEquipoAliado.HasValue) { if (unidadBase.TieneEquipoAliado.Value) { this.vista.PermitirRegistrar(false); this.vista.MostrarMensaje("No se puede dar de baja a la unidad de la sucursal actual, porque esta aun cuenta con equipos aliados asociados, elimine los equipos e intente de nuevo.", ETipoMensajeIU.ADVERTENCIA, null); } } //Desplegamos la unidad obtenida this.DatoAInterfazUsuario(unidadBase); this.EstablecerSeguridad(); } catch (Exception ex) { this.vista.PermitirRegistrar(false); throw new Exception(string.Format("{0}.PrepararEdicion:{1}{2}", nombreClase, Environment.NewLine, ex.Message)); } }