Ejemplo n.º 1
0
        /// <summary>
        /// Metodo encargado de deshabilitar el registro orden actividad requisicion
        /// </summary>
        /// <param name="id_usuario">Id de Usuario que deshabilita</param>
        /// <param name="deshabilitaRequisicion">True para deshabilitar también la requisición, de lo contrario False para conservarla.</param>
        /// <returns></returns>
        public RetornoOperacion DeshabilitaOrdenActividadRequisicion(int id_usuario, bool deshabilitaRequisicion)
        {
            //Declarando variable de retorno
            RetornoOperacion resultado = new RetornoOperacion(1);

            //Inicializando transacción
            using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
            {
                //Si es requerido deshabilitar también la requisición
                if (deshabilitaRequisicion)
                {
                    //Instanciando la requisición ligada
                    using (Requisicion r = new Requisicion(this._id_requisicion))
                    {
                        //Validamos Estatus de la Requisición
                        if ((Requisicion.Estatus)r.id_estatus == Requisicion.Estatus.Registrada)
                        {
                            //Si la requisición existe
                            if (r.id_requisicion > 0)
                            {
                                //Deshabilitando la requisición
                                resultado = r.DeshabilitaRequisicion(id_usuario);
                            }
                        }
                        else
                        {
                            //Establecemos Error
                            resultado = new RetornoOperacion("El estatus de la Requisición no permite su edicón.");
                        }
                    }
                }

                //Si no se ha producido ningún error previo
                if (resultado.OperacionExitosa)
                {
                    //Deshabilitando la liga entre la Requisición y la Actvividad
                    resultado = this.editaRegistroOrdenActividadRequisicion(this.id_orden, this.id_orden_actividad,
                                                                            this.id_requisicion, this.fecha_asignacion, id_usuario, false);

                    //Validando que la Operción fuese Exitosa
                    if (resultado.OperacionExitosa)
                    {
                        //Completando Transacción
                        trans.Complete();
                    }
                }
            }

            //Devolviendo el resultado
            return(resultado);
        }