示例#1
0
        /// <summary>
        /// Obtiene la estructura de todo el proyecto, incluyendo las actividades que la involucran, y las asignaciones.
        /// </summary>
        /// <param name="lista"></param>
        /// <param name="sub"></param>
        /// <param name="nivel"></param>
        /// <returns></returns>
        public static List <ClaseExpGantt> ObtenerEstructuraSubproyectosConActividades(List <ClaseExpGantt> lista, SUBPROYECTO sub, int nivel)
        {
            List <SUBPROYECTO>        listaSubproyectos = ObtenerSubproyectosHijos(subpro: sub);
            List <Actividad_proyecto> actividades       = ControladorActividades.ObtenerActividadesProyectoDeSubproyecto(sub);

            ClaseExpGantt estructura = new ClaseExpGantt()
            {
                subproyecto = sub, nivel = nivel
            };

            lista.Add(estructura);
            nivel = nivel + 1;

            foreach (var actividad in actividades)
            {
                Detalle_recurso tarea        = ControladorTareas.ObtenerPorActividad(actividad);
                ClaseExpGantt   ExpoActivida = new ClaseExpGantt()
                {
                    actividadProy = actividad, nivel = nivel, tarea = tarea, subproyecto = null, actividad = ControladorActividades.ObtenerActividad(actividad), usuario = tarea != null?ControladorUsuarios.ObtenerUsuario(tarea.id_usuario.Value) : null
                };
                lista.Add(ExpoActivida);
            }

            foreach (SUBPROYECTO subpro in listaSubproyectos)
            {
                ObtenerEstructuraSubproyectosConActividades(lista, subpro, nivel);
            }
            return(lista);
        }
        /// <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>
        /// Verifica si la actividad tiene asignación automática, y si no tiene
        /// se lo asigna a todos sus miebros.
        /// </summary>
        /// <param name="act"></param>
        /// <returns></returns>
        public static bool VerificarAsignacionAutomatica(Actividad_proyecto act)
        {
            var subproyecto = ControladorSubproyecto.BuscarPorId(act.id_subproyecto.Value);

            if (subproyecto.asignacion_automatica)
            {
                Usuario_Proyecto _Usuario_proyecto         = new Usuario_Proyecto();
                List <USUARIO>   odt_miembros_subproyectos = ControladorSubproyecto.ObtenerMiembrosIndirectos(subproyecto);

                foreach (USUARIO row in odt_miembros_subproyectos)
                {
                    var detalle = new Detalle_recurso()
                    {
                        realizada             = false,
                        tipo                  = "automatico",
                        porcentaje_avance     = 0,
                        id_actividad_proyecto = act.id_actividad_proyecto,
                        motivo                = "- Asignada automáticamente - ",
                        cantidad_hora         = Convert.ToDecimal(ControladorActividades.ObtenerHorasPorOrdenCompra(act)),
                        id_usuario            = Convert.ToInt32(row.id_usuario),
                        fecha_inicio          = null,
                        fecha_fin             = null
                    };

                    ControladorTareas.Insertar(detalle);
                }
                return(true);
            }
            return(false);
        }
示例#4
0
 public static void EliminarActividad(Actividad_proyecto item)
 {
     if (!TieneHorasLogueadas(item))
     {
         //Eliminar Detalle Recurso
         ControladorTareas.EliminarDetalleRecursoActividad(item);
         //Eliminar Programacion_Actividad
         ActividadProyectoDB.EliminarProgramacionActividadDeActividadProyecto(item);
         //Eliminar Actividad
         ActividadProyectoDB.EliminarActividadDeActividadProyecto(item);
         //Eliminar Actividad_Proyecto
         ActividadProyectoDB.EliminarActividadProyecto(item);
     }
 }
        public void ExportarTodosProyectos()
        {
            List <Proyecto> proyectos = ControladorProyecto.ObtenerProyectosActivos();

            if (OpenFile())
            {
                IXLWorksheet         _worksheetProyecto = _xlworkbook.Worksheet("Tabla_Tareas");
                List <ClaseExpGantt> estructura;

                int fila     = 2;
                int filaAsig = 2;

                CrearRecursos();

                foreach (var item in proyectos)
                {
                    estructura = _controladorProyecto.ObtenerEstructuraProyectoConActividades(item);



                    _worksheetProyecto.Cell(fila, 1).Value = fila - 1;
                    _worksheetProyecto.Cell(fila, 2).Value = "Sí";
                    _worksheetProyecto.Cell(fila, 3).Value = "Programada manualmente";
                    _worksheetProyecto.Cell(fila, 4).Value = item.nombre_proyecto;
                    _worksheetProyecto.Cell(fila, 5).Value = item.total_hora + " horas";
                    _worksheetProyecto.Cell(fila, 6).Value = ControladorTareas.CalcularFechaInicioProyecto(item);
                    _worksheetProyecto.Cell(fila, 7).Value = ControladorTareas.CalcularFechaFinProyecto(item);
                    _worksheetProyecto.Cell(fila, 9).Value = 1;

                    fila++;

                    foreach (ClaseExpGantt subproyecto in estructura)
                    {
                        filaAsig = CrearAsignacion(subproyecto, filaAsig, fila - 1);

                        if (subproyecto.subproyecto != null)
                        {
                            _worksheetProyecto.Cell(fila, 1).Value = fila - 1;
                            _worksheetProyecto.Cell(fila, 2).Value = "Sí";
                            _worksheetProyecto.Cell(fila, 3).Value = "Programada manualmente";
                            _worksheetProyecto.Cell(fila, 4).Value = subproyecto.subproyecto.nombre;
                            _worksheetProyecto.Cell(fila, 5).Value = subproyecto.subproyecto.horas_estimadas + " horas";// ControladorSubproyecto.ObtenerHorasOrdenCompra(subproyecto.subproyecto) + " horas";
                            _worksheetProyecto.Cell(fila, 6).Value = ControladorTareas.CalcularFechaInicioSubproyecto(subproyecto.subproyecto);
                            _worksheetProyecto.Cell(fila, 7).Value = ControladorTareas.CalcularFechaFinSubproyecto(subproyecto.subproyecto);
                            _worksheetProyecto.Cell(fila, 9).Value = subproyecto.nivel + 1;
                        }
                        else
                        {
                            _worksheetProyecto.Cell(fila, 1).Value = fila - 1;
                            _worksheetProyecto.Cell(fila, 2).Value = "Sí";
                            _worksheetProyecto.Cell(fila, 3).Value = "Programada automáticamente";
                            _worksheetProyecto.Cell(fila, 4).Value = subproyecto.actividad.nombre_actividad;

                            if (subproyecto.tarea != null)
                            {
                                if (subproyecto.actividad.id_tipo_actividad == ControladorActividades.ObtenerTipoActividad("prepa").id_tipo_actividad ||
                                    subproyecto.actividad.id_tipo_actividad == ControladorActividades.ObtenerTipoActividad("deta").id_tipo_actividad)
                                {
                                    //Predecesores
                                    //_worksheetProyecto.Cell(fila, 8).Value = fila - 2;
                                }

                                _worksheetProyecto.Cell(fila, 4).Value  = subproyecto.actividad.nombre_actividad + " - " + subproyecto.usuario.FullName;
                                _worksheetProyecto.Cell(fila, 5).Value  = subproyecto.tarea.cantidad_hora + " horas";
                                _worksheetProyecto.Cell(fila, 6).Value  = subproyecto.tarea.fecha_inicio;
                                _worksheetProyecto.Cell(fila, 7).Value  = subproyecto.tarea.fecha_fin;
                                _worksheetProyecto.Cell(fila, 11).Value = subproyecto.actividadProy.id_actividad_proyecto;
                            }

                            _worksheetProyecto.Cell(fila, 9).Value = subproyecto.nivel + 1;
                        }

                        fila++;
                    }
                }

                if (CloseFile())
                {
                    System.Diagnostics.Process.Start(path + "\\" + "Gantt" + ".xlsx");
                }
            }
        }