/// <summary>
        /// Agrega una tarea en la base de datos para el usuario seleccionado.
        /// Se asigna con estado Pendiente.
        /// Si el usuaro ya tiene ese
        /// </summary>
        /// <param name="idActividadProyectoSolicitar"></param>
        /// <param name="idUsuario"></param>
        /// <returns></returns>
        public static Detalle_recurso RequerirTarea(int idActividadProyectoSolicitar, int idUsuario)
        {
            Detalle_recurso tarea = new Detalle_recurso();

            tarea.id_actividad_proyecto = idActividadProyectoSolicitar;
            tarea.forzada              = false;
            tarea.id_usuario           = idUsuario;
            tarea.motivo               = "solicitud";
            tarea.tipo                 = "";
            tarea.porcentaje_avance    = 0;
            tarea.realizada            = false;
            tarea.cantidad_hora        = Convert.ToDecimal(ControladorActividades.ObtenerHorasTotalesActividad(ControladorActividades.ObtenerActividadProyecto(idActividadProyectoSolicitar)));
            tarea.id_estado            = ObtenerEstadoPorNombre("Pendiente").IdEstadoTarea;
            tarea.fecha_inicio         = DateTime.Now;
            tarea.fecha_fin            = ControladorCalendario.CalcularFechaFin(ControladorActividades.ObtenerActividadProyecto(idActividadProyectoSolicitar), ControladorUsuarios.ObtenerUsuario(idUsuario), tarea.fecha_inicio.Value, ControladorActividades.ObtenerHorasTotalesActividad(ControladorActividades.ObtenerActividadProyecto(idActividadProyectoSolicitar)));
            tarea.duracion_cadista     = (decimal)ControladorActividades.ObtenerHorasOrdenCompraParaCadista(ControladorActividades.ObtenerActividadProyecto(idActividadProyectoSolicitar));
            tarea.fecha_inicio_cadista = tarea.fecha_inicio;
            tarea.fecha_fin_cadista    = tarea.fecha_fin;


            if (ControladorTareas.EstaAsignadaAUsuario(idActividadProyectoSolicitar, idUsuario) == null)
            {
                return(Insertar(tarea));
            }
            return(null);
        }
        /// <summary>
        /// Asigna la actividad al usuario - VER TEMA DE FECHAS
        /// </summary>
        /// <param name="actividad"></param>
        /// <param name="usuario"></param>
        public static Detalle_recurso AsignarActividad(Actividad_proyecto actividad, USUARIO usuario, DateTime fecha_inicio, DateTime fecha_fin)
        {
            Detalle_recurso tarea = new Detalle_recurso();

            tarea.cantidad_hora         = (decimal)(ControladorActividades.ObtenerHorasTotalesActividad(actividad));
            tarea.fecha_fin             = fecha_fin;
            tarea.fecha_inicio          = fecha_inicio;
            tarea.forzada               = false;
            tarea.id_actividad_proyecto = actividad.id_actividad_proyecto;
            tarea.id_estado             = ObtenerEstadoPorNombre("Asignado") != null?ObtenerEstadoPorNombre("Asignado").IdEstadoTarea : 0;

            tarea.id_usuario        = usuario.id_usuario;
            tarea.motivo            = "asignada por algoritmo";
            tarea.porcentaje_avance = 0;
            tarea.realizada         = false;
            tarea.tipo = "asignada por algoritmo";
            tarea.fecha_inicio_cadista = fecha_inicio;
            tarea.fecha_fin_cadista    = fecha_fin;
            tarea.duracion_cadista     = (decimal)(ControladorActividades.ObtenerHorasOrdenCompraParaCadista(actividad));

            return(TareaDB.AsignarActividad(tarea));
        }