예제 #1
0
        /// <summary>
        /// Realiza la deshabilitación de las requisiciónes y sus relaciones existentes con una actividad de Orden de Trabajo especifica.
        /// </summary>
        /// <param name="idOrdenActividad">Id de Actividad</param>
        /// <param name="idUsuario">Id de Usuario</param>
        /// <returns></returns>
        public static RetornoOperacion DeshabilitaRequisicionesActividadOrden(int idOrdenActividad, int idUsuario)
        {
            //Declarando objeto de retorno
            RetornoOperacion resultado = new RetornoOperacion(1);

            //Cargando las relaciones existentes con Requisiciones
            using (DataTable dt = CargaRequisicionesActividad(idOrdenActividad))
            {
                //Validando el origen de datos
                if (TSDK.Datos.Validacion.ValidaOrigenDatos(dt))
                {
                    //Instanciando transacción
                    using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
                    {
                        //Para cada registro relación devuelto
                        foreach (DataRow f in dt.Rows)
                        {
                            //Instanciando la relación correspondiente
                            using (OrdenTrabajoActividadRequisicion r = new OrdenTrabajoActividadRequisicion(f.Field <int>("IdOrdenActividadRequisicion")))
                            {
                                //Si la relación existe
                                if (r.id_orden_actividad_requisicion > 0)
                                {
                                    //Realziando la deshabilitación
                                    resultado = r.DeshabilitaOrdenActividadRequisicion(idUsuario, true);

                                    //Si se produjo algún error
                                    if (!resultado.OperacionExitosa)
                                    {
                                        //Saliendo del ciclo de deshabilitación
                                        break;
                                    }
                                }
                            }
                        }

                        //Validando que la Operación fuese Exitosa
                        if (resultado.OperacionExitosa)
                        {
                            //Completando Transacción
                            trans.Complete();
                        }
                    }
                }
                //Si no contiene el esquema requerido
                else
                {
                    resultado = new RetornoOperacion("Error al consultar las requisiciones de la actividad.");
                }
            }

            //Devolvinedo el resultado obtenido
            return(resultado);
        }