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); } }
/// <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> /// 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)); } }