/// <summary> /// Método encargado de Deshabilitar un Movimiento Vacio Iniciado /// </summary> /// <param name="id_usuario"></param> /// <returns></returns> public RetornoOperacion DeshabilitaMovimientoVacioIniciado(int id_usuario) { //Declaramos objeto Resultado RetornoOperacion resultado = new RetornoOperacion(); //Iniciando transacción using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Validamos que el estatus actual del movimiento sea Iniciado if (this.EstatusMovimiento == Estatus.Iniciado) { //Validamos que no existan pagos ligados al movimeinto resultado = validaPagos(); //Validamos que no existan Pagos if (resultado.OperacionExitosa) { //Cargamos Estancias ligadas a un Id Movimiento en Estatus Iniciado using (DataTable mitEstanciasOrigen = EstanciaUnidad.CargaEstanciasTerminadasParada(this._id_parada_origen)) { //Reversa Inicio de Moimiento resultado = ReversaInicioMovimietoVacio(mitEstanciasOrigen, MovimientoAsignacionRecurso.Estatus.Iniciado, id_usuario); } //Validamos Resultado if (resultado.OperacionExitosa) { //Instanciamos Parada Destino using (Parada objParadaDestino = new Parada(this._id_parada_destino)) { //Deshabilitamos Parada Destino resultado = objParadaDestino.DeshabilitaParada(id_usuario); } } } } else { //Establecemos Mensaje resultado = new RetornoOperacion("El estatus del movimiento no permite su edición."); } //Validamos Resultado if (resultado.OperacionExitosa) { scope.Complete(); } } //Devolvemos Valor Retorno return(resultado); }
/// <summary> /// Deshabilita un Movimiento en Vacio /// </summary> /// <param name="id_usuario">Id Usuario</param> /// <returns></returns> public RetornoOperacion DeshabilitaMovimientoVacioTerminado(int id_usuario) { //Declaramos objeto resultado RetornoOperacion resultado = new RetornoOperacion("El movimiento debe estar en estatus Terminado"); //Validando estatus actual del movimiento if (this.EstatusMovimiento == Estatus.Terminado) { //Iniciando transacción using (TransactionScope scope = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciamos la Parada Origen using (Parada objParadaOrigen = new Parada(this._id_parada_origen), objParadadDestino = new Parada(this._id_parada_destino)) { //Cargamos Estancias ligadas a un Id Movimiento en Estatus Terminado using (DataTable mitEstanciasOrigen = EstanciaUnidad.CargaEstanciasTerminadasParada(this._id_parada_origen)) { //Validando que las unidades involucradas se encuentren: //Asociadas aún al servicio y en estatus ocupado //Disponibles en la ubicación de fin del movimiento y sin ningún movimiento asignado resultado = MovimientoAsignacionRecurso.ValidaRecursosParaReversaTerminaMovimiento(this._id_movimiento); //Validamos Resultado if (resultado.OperacionExitosa) { //Validamos que no existan pagos ligados al movimeinto resultado = validaPagos(); //Validamos Resultado if (resultado.OperacionExitosa) { //Deshabilitamos Estancias resultado = EstanciaUnidad.DeshabilitaEstanciaUnidadesMovimientoVacio(this._id_movimiento, this._id_parada_destino, id_usuario); //Validamos Resultado if (resultado.OperacionExitosa) { //Deshabilitamos Parada Destino resultado = objParadadDestino.DeshabilitaParada(id_usuario); //Validamos Resultado if (resultado.OperacionExitosa) { //Reversa los movimientos de la Parada Origen resultado = ReversaInicioMovimietoVacio(mitEstanciasOrigen, MovimientoAsignacionRecurso.Estatus.Terminado, id_usuario); } } } } } } //Si no hay errores if (resultado.OperacionExitosa) { //Terminando transacción scope.Complete(); } } } else { //Establecemos Mesnaje Error resultado = new RetornoOperacion("El estatus del movimiento no permite su eliminación"); } //Devolvemos resultado return(resultado); }