Sistema de Gestión de Negocios "Hexa"
Base de datos de conocimiento.
| Doc. Ref. 32007 Título: Los métodos Proy en Hexa V9 Autor: Soltec Última actualización: 17/08/2018#clase #objeto #pryectos #tareas #operaciones #diario |
Los métodos Proy en Hexa V.9
El objeto Proy, de la clase cProy, gestiona proyectos, tareas y dedicaciones realizadas o previstas. Permite crear registros a partir de modelos, actualizar prioridades, cerrar o trasladar tareas y eliminar proyectos con sus datos dependientes. Las prioridades y fechas intervienen en la determinación de los estados.
En los métodos con Condicion, Orden y Opciones, el criterio SQL se indica sin WHERE y el orden sin ORDER BY, salvo las particularidades descritas en cada caso. Opciones contiene valores con el formato Nombre=Valor; los textos con espacios se delimitan con comillas simples. Una condición vacía puede abarcar todos los registros. Los ejemplos utilizan datos ilustrativos.
Los métodos disponibles son los siguientes:
-
Proy.CreaProyecto(Codigo, Tipo, Titulo, Cliente, Alta, Responsable, Prioridad)
Crea un proyecto con Codigo, Tipo, Titulo, Cliente, Alta, Responsable y Prioridad. Si Codigo está vacío intenta obtenerlo del evento Proy.CreaProyecto.CodigoDefecto y después del siguiente código numérico. Rechaza códigos repetidos y clientes inexistentes; Alta no válida se sustituye por BD.FechaTrabajo y prioridad cero por 50. Tipo permite tomar datos de ProyectoTipo y crear sus tareas.
Devuelve "Se ha creado el proyecto Codigo=" y el código, o el motivo de rechazo. Conviene especificar Responsable explícitamente: aunque calcula un responsable del tipo, la comprobación y el alta actuales siguen usando el argumento original.
Ejemplo:
Main = Proy.CreaProyecto("P2026", "", "Proyecto de ejemplo", 1234, "30/09/2026", "EMP01", 50) -
Proy.GenProyPTip(Condicion, Orden, Opciones)
Genera proyectos a partir de los registros seleccionados de ProyectoTipo. Utiliza Proxima como fecha y, si no existe, la fecha de trabajo; actualiza la próxima fecha según la periodicidad. Opciones: FechaLimite limita la fecha de generación y descarta los tipos sin próxima fecha cuando se especifica ese límite. Devuelve el detalle de lo generado o de las incidencias.
Ejemplo:
Main = Proy.GenProyPTip("Codigo='MANTENIMIENTO'", "Codigo", "FechaLimite='30/09/2026'") -
Proy.CreaTareasProyectoTipo(Proyecto)
Crea las tareas del proyecto a partir de su ProyectoTipo y las definiciones de tareas vinculadas. Rechaza proyectos que ya tienen tareas o que no tienen tipo. Utiliza CreaTarea, que puede incorporar la dedicación prevista de cada tarea tipo. Devuelve un resumen o un mensaje de rechazo.
Ejemplo:
Main = Proy.CreaTareasProyectoTipo("P2026") -
Proy.CreaTarea(Proyecto, Tipo, TareaTipo, Descripcion, Responsable, Creada, FechaCreacion, Area, Origen, ProximaGestion, FinPrevisto, Prioridad)
Crea una tarea dentro de Proyecto, asignando el siguiente código disponible en ese proyecto. Tipo y TareaTipo definen su clasificación y plantilla; Descripcion, Responsable y Creada identifican el trabajo y sus empleados. FechaCreacion inválida se sustituye por la fecha de trabajo. Area, Origen, ProximaGestion, FinPrevisto y Prioridad completan la planificación.
Comprueba proyecto, responsable, descripción y empleado creador. Si hay TareaTipo copia su dedicación prevista. Devuelve "Creada tarea Codigo=" y el número, junto con la cantidad de registros previstos, o el motivo del rechazo.
Ejemplo:
Main = Proy.CreaTarea("P2026", "Soporte", "", "Revisar equipo", "EMP01", "EMP01", "30/09/2026", "", "Manual", "", "", 50) -
Proy.CreaDedicacion(Proyecto, Tarea, Fecha, Empleado, Categoria, Cantidad, Comentarios)
Introduce dedicación realizada con Proyecto, Tarea, Fecha, Empleado, Categoria, Cantidad y Comentarios. Comprueba la existencia del proyecto, la tarea cuando procede y el empleado. Devuelve "Creada dedicación" o un mensaje de error o validación.
Ejemplo:
Main = Proy.CreaDedicacion("P2026", 1, DateSerial(2026, 9, 30), "EMP01", "Trabajo", 2, "Revisión") -
Proy.CreaDedicacionPrevista(Proyecto, Tarea, FechaIntroduccion, Empleado, Categoria, Cantidad, Comentarios)
Introduce un registro en DedicacionPrevista para Proyecto y Tarea, con fecha de introducción, empleado, categoría, cantidad y comentarios. Comprueba proyecto, tarea y empleado. Devuelve "Creada dedicación prevista" o el motivo del rechazo.
Ejemplo:
Main = Proy.CreaDedicacionPrevista("P2026", 1, DateSerial(2026, 9, 30), "EMP01", "Trabajo", 2, "Prevision") -
Proy.ActPrio(Condicion, Orden, Opciones)
Suma el valor Variacion de Opciones a la prioridad de las tareas que cumplen Condicion. Con variación cero devuelve "Ninguna modificación". Orden no se utiliza. El mensaje de resultado habla de proyectos, pero la tabla modificada es Tarea.
Ejemplo:
Main = Proy.ActPrio("Proyecto='P2026' AND Prioridad>0", "", "Variacion=5") -
Proy.PrioridadProyecto(Condicion, Orden, Opciones)
Recalcula la prioridad de los proyectos a partir de la mayor prioridad de sus tareas pendientes y actualiza los contadores de tareas pendientes, en curso y terminadas. También revisa fechas de inicio y fin según el estado. Orden y Opciones no aportan ajustes propios.
En el código actual, una de las consultas finales sustituye WHERE por AND sin tener un WHERE previo. Un criterio no vacío puede producir SQL incorrecto después de haber realizado actualizaciones parciales.
-
Proy.PrioridadTarea(Condicion, Orden, Opciones)
Eleva a 90 las prioridades positivas inferiores a 90 cuando ProximaGestion ha llegado, y a 80 las inferiores a 80 cuando FinPrevisto está a cinco días o menos de la fecha de trabajo. Revisa fechas de inicio y fin de las tareas y devuelve un resumen.
La consulta posterior de tareas sustituye WHERE por AND sin un WHERE previo, de modo que un criterio no vacío puede fallar después de actualizar prioridades. Orden y Opciones no se utilizan.
-
Proy.CierraTarea(Condicion, Orden, Opciones)
Cierra las tareas seleccionadas estableciendo Prioridad=0, completado=100 y Fin. Opciones: FechaFin usa por defecto BD.FechaTrabajo; ContinuaEnProyecto permite crear una continuación en otro proyecto abierto del mismo cliente. Sin continuación explícita puede generar la tarea siguiente indicada por TareaTipo.Genera.
Omite tareas ya cerradas y continuaciones no válidas. Puede enviar un aviso al creador mediante InformaTarea y actualiza el estado del proyecto. Devuelve los contadores Cerradas y No Cerradas, o el texto del error.
Ejemplo:
Main = Proy.CierraTarea("Proyecto='P2026' AND Codigo=1", "Codigo", "FechaFin='30/09/2026'") -
Proy.MovTarea(Condicion, Orden, Opciones)
Traslada las tareas seleccionadas al proyecto indicado en Opciones como Proyecto. El destino debe existir y tener prioridad distinta de cero. Reasigna los códigos y los registros de dedicación y dedicación prevista relacionados, y devuelve la cantidad trasladada.
Ejemplo:
Main = Proy.MovTarea("Proyecto='P2026' AND Codigo=1", "Codigo", "Proyecto='P2027'") -
Proy.CierraProyecto(Proyecto, FechaFin)
Cierra Proyecto estableciendo prioridad cero y Fin=FechaFin. No lo cierra si ya tiene prioridad cero o si quedan tareas con prioridad positiva. Devuelve un mensaje de cierre o del motivo por el que no lo realiza.
Ejemplo:
Main = Proy.CierraProyecto("P2026", DateSerial(2026, 9, 30)) -
Proy.InformaTarea(Condicion, Orden, Opciones)
Compone un aviso con la tarea identificada por Condicion, sus fechas, responsables, observaciones y dedicación. Opciones: Hecho describe el suceso; SoloUltimaDedicacion limita el detalle al último registro. Transmite las opciones de remitente y destinatario a Com.EMLC9.
Devuelve "Mensaje enviado" sin comprobar el resultado del envío. La llamada actual a EMLC9 añade Destinatario='Manual', mientras que ese método utiliza cadena vacía para el envío manual; esta diferencia puede impedir el aviso.
-
Proy.BorraProyecto(Condicion, Orden, Opciones)
Elimina los proyectos seleccionados y sus tareas, así como la dedicación realizada y prevista asociada, incluida la que no pertenece a una tarea. Registra el suceso y devuelve el número de proyectos borrados. Opciones no se utiliza.
Ejemplo:
Main = Proy.BorraProyecto("Codigo='P2026'", "Codigo", "") -
Proy.BorraTarea(Condicion, Orden, Opciones)
Elimina las tareas seleccionadas junto con sus registros de Dedicacion y DedicacionPrevista, identificados por proyecto y código de tarea. Devuelve la cantidad de tareas borradas y registra el suceso. Opciones no se utiliza.
Ejemplo:
Main = Proy.BorraTarea("Proyecto='P2026' AND Codigo=1", "Codigo", "")
