t('Gestión de proyectos estratégicos institucional.'),
'description' => t('Gestión de Información de proyectos estratégicos institucional del actor planificador.'),
'weight' => -9,
);
}
else {
$procesos['proyecto_estrategico_proyectos'] = array(
'title' => t('Registro de proyectos estratégicos institucionales.'),
'description' => t('Registro de proyectos estratégicos institucionales.'),
'message' => 'Se podrá registrar y/o modificar los proceso de los proyectos estratégicos desde %fecha hasta la fecha %fecha1',
'message_expire' => 'Registrar y/o modificar los proceso de los proyectos estratégicos no se encuentra disponible, se podra realizar desde %fecha hasta la fecha %fecha1)',
'weight' => 9,
'proceso' => 'proyecto_estrategico',
);
}
}
/*
* Implementation of proyectos_direccionales_status_planificacion_proyectos()
*/
function proyecto_estrategico_status_planificacion_proyecto_estrategico($ente_planificador, $tipo = 2) {
$ente = node_load($ente_planificador);
$mi_fecha = ente_planificador_user_acceso_proceso('proyecto_estrategico_proyectos', $tipo);
$proyectos = proyecto_estrategico_obtiene_proyectos($ente, $mi_fecha);
//se verifica que exista la planificacion, si existe al menos los datos de familiarizacion fueron ingresados
$proyecto_estrategico_status['proyecto_estrategico_proyectos']['value'] = count($proyectos) ? 1 : 0;
$proyecto_estrategico_status['proyecto_estrategico_proyectos']['title'] = t('Gestión de proyectos estratégicos institucional');
$proyecto_estrategico_status['proyecto_estrategico_proyectos']['link'] = 'planificacion/' . $ente_planificador . '/proyecto_estrategico';
$proyecto_estrategico_status['proyecto_estrategico_proyectos']['mylink'] = 'mi_ente_planificador/planificacion/proyecto_estrategico';
$proyecto_estrategico_status['proyecto_estrategico_proyectos']['weight'] = -10;
return $proyecto_estrategico_status;
}
/*
* Implementation of hook_menu()
*/
function proyecto_estrategico_menu() {
$items = array();
$items['planificacion/%ente_planificador_menu/proyecto_estrategico'] = array(
'title' => t('Proyectos estratégicos'),
'page callback' => 'proyecto_estrategico_listar_proyectos',
'page arguments' => array(1),
'access arguments' => array('ver planificador'),
'weight' => -7,
'type' => MENU_LOCAL_TASK,
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/ver'] = array(
'title' => t('Proyectos estratégicos'),
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/registrar'] = array(
'title' => t('Registrar proyecto estratégico'),
'page callback' => 'drupal_get_form',
'page arguments' => array('proyecto_estrategico_datos_basicos_form', 1),
'access callback' => 'proyecto_estrategico_usuario_crea_proyectos',
'access arguments' => array(1),
'weight' => -9,
'type' => MENU_LOCAL_TASK,
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/%proyecto_estrategico_menu'] = array(
'title' => t('Ver proyecto estratégico'),
'page callback' => 'proyecto_estrategico_mostrar_proyectos',
'page arguments' => array(1, 3),
'access arguments' => array('ver planificador'),
'weight' => -7,
'type' => MENU_LOCAL_TASK,
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/%proyecto_estrategico_menu/ver'] = array(
'title' => t('Proyecto estratégico'),
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/%proyecto_estrategico_menu/datos_basicos'] = array(
'title' => t('Datos básicos'),
'page callback' => 'drupal_get_form',
'page arguments' => array('proyecto_estrategico_datos_basicos_form', 1, 3),
'access callback' => 'proyecto_estrategico_usuario_tiene_proyectos',
'access arguments' => array(1, 3),
'weight' => -9,
'type' => MENU_LOCAL_TASK,
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/%proyecto_estrategico_menu/planes_politicas'] = array(
'title' => t('Planes y políticas'),
'page callback' => 'drupal_get_form',
'page arguments' => array('proyecto_estrategico_planes_politicas_form', 1, 3),
'access callback' => 'proyecto_estrategico_usuario_tiene_proyectos',
'access arguments' => array(1, 3),
'weight' => -5,
'type' => MENU_LOCAL_TASK,
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/%proyecto_estrategico_menu/objetivos'] = array(
'title' => t('objetivos estratégicos'),
'page callback' => 'proyecto_estrategico_mostrar_objetivos',
'page arguments' => array(1, 3),
'access callback' => 'proyecto_estrategico_usuario_tiene_proyectos',
'access arguments' => array(1, 3),
'weight' => -8,
'type' => MENU_LOCAL_TASK,
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/%proyecto_estrategico_menu/objetivos/registrar'] = array(
'title' => t('Registrar objetivo estratégico'),
'page callback' => 'drupal_get_form',
'page arguments' => array('proyecto_estrategico_objetivos_estrategicos_registrar_form', 1, 3),
'access callback' => 'proyecto_estrategico_usuario_tiene_proyectos',
'access arguments' => array(1, 3),
'weight' => -8,
'type' => MENU_LOCAL_TASK,
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/%proyecto_estrategico_menu/objetivos/%proyecto_objetivos_menu/modificar'] = array(
'title' => t('Modificar objetivo estratégico'),
'page callback' => 'drupal_get_form',
'page arguments' => array('proyecto_estrategico_objetivos_estrategicos_registrar_form', 1, 3, 5),
'access callback' => 'proyecto_estrategico_usuario_tiene_objetivos_estrategicos',
'access arguments' => array(1, 3),
'weight' => -8,
'type' => MENU_CALLBACk,
);
$items['planificacion/%ente_planificador_menu/proyecto_estrategico/%proyecto_estrategico_menu/objetivos/%proyecto_objetivos_menu/eliminar'] = array(
'title' => t('Eliminar objetivo estratégico'),
'page callback' => 'drupal_get_form',
'page arguments' => array('proyecto_estrategico_objetivos_estrategicos_eliminar_form', 1, 3, 5),
'access callback' => 'proyecto_estrategico_usuario_tiene_objetivos_estrategicos',
'access arguments' => array(1, 3),
'weight' => -8,
'type' => MENU_CALLBACk,
);
return $items;
}
/*
* Implementation of hook_perm
*/
function proyecto_estrategico_perm() {
return array(
'editar proyectos estrategicos de mi ente',
);
}
/**
* Implementation of proyecto_estrategico_menu_load().
* Menu loader callback. Load a proyecto estrategico.
*/
function proyecto_estrategico_menu_load($proyecto_estrategico_menu = 0) {
global $user;
$proyecto_estrategico = FALSE;
if($proyecto_estrategico_menu && is_numeric($proyecto_estrategico_menu)) {
$proyecto_estrategico = node_load($proyecto_estrategico_menu);
}
if (!$proyecto_estrategico->status || $proyecto_estrategico->type != 'proyecto_estrategico' || $proyecto_estrategico->field_estrategico_ente[0]['nid'] != arg(1)) {
$proyecto_estrategico = FALSE;
}
return $proyecto_estrategico;
}
/**
* Implementation of proyecto_objetivos_menu_load().
* Menu loader callback. Load a proyecto estrategico.
*/
function proyecto_objetivos_menu_load($proyecto_estrategico_objetivos_menu = 0) {
global $user;
$objetivo_estrategico = FALSE;
if($proyecto_estrategico_objetivos_menu && is_numeric($proyecto_estrategico_objetivos_menu)) {
$proyecto_estrategico_objetivos = node_load($proyecto_estrategico_objetivos_menu);
$proyecto_estrategico = FALSE;
if (isset($proyecto_estrategico_objetivos->field_objetivo_proyecto_estra[0]['nid']) && $proyecto_estrategico_objetivos->field_objetivo_proyecto_estra[0]['nid']) {
$proyecto_estrategico = node_load($proyecto_estrategico_objetivos->field_objetivo_proyecto_estra[0]['nid']);
}
if (!$proyecto_estrategico_objetivos->status || !$proyecto_estrategico->status || $proyecto_estrategico->type != 'proyecto_estrategico' || $proyecto_estrategico_objetivos->type != 'objetivos_estrategicos' || $proyecto_estrategico_objetivos->field_objetivo_ente[0]['nid'] != arg(1)) {
$proyecto_estrategico = FALSE;
}
}
return $proyecto_estrategico_objetivos;
}
/*
* Implementation of proyecto_estrategico_usuario_tiene_proyectos()
*/
function proyecto_estrategico_usuario_tiene_proyectos($ente_planificador, $proyecto_estrategico) {
global $user;
$ente = usuario_tiene_ente($user->uid);
$accesso = proyecto_estrategico_obtiene_acceso_proceso('proyecto_estrategico_proyectos', $ente_planificador, $ente);
return ($proyecto_estrategico->nid && $accesso);
}
/*
* Implementation of proyecto_estrategico_usuario_crea_proyectos()
*/
function proyecto_estrategico_usuario_crea_proyectos($ente_planificador) {
global $user;
$ente = usuario_tiene_ente($user->uid);
$accesso = proyecto_estrategico_obtiene_acceso_proceso('proyecto_estrategico_proyectos', $ente_planificador, $ente);
return $accesso;
}
/*
* Implementation of proyecto_estrategico_usuario_tiene_objetivos_estrategicos()
*/
function proyecto_estrategico_usuario_tiene_objetivos_estrategicos($ente_planificador, $objetivo_estrategico) {
global $user;
$ente = usuario_tiene_ente($user->uid);
$accesso = proyecto_estrategico_obtiene_acceso_proceso('proyecto_estrategico_proyectos', $ente_planificador, $ente);
return ($objetivo_estrategico->nid && $accesso);
}
/*
* Implementation of proyecto_estrategico_obtiene_acceso_proceso()
*/
function proyecto_estrategico_obtiene_acceso_proceso($tipo_plan, $ente_planificador, $user_ente = NULL){
$current_time = time();
$accesso = FALSE;
if (isset($ente_planificador->tipo) && $ente_planificador->nid && is_numeric($ente_planificador->nid) && isset($ente_planificador->type) && $ente_planificador->type == 'ente_planificador') {
$mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
if ($mi_fecha[1] + 86399 > $current_time && $mi_fecha[0] < $current_time) {
if ((user_access('admin planificador') || ($user_ente->nid == $ente_planificador->nid && user_access('editar proyectos estrategicos de mi ente')))) {
$accesso = TRUE;
}
}
}
return $accesso;
}
/*
* Implementation of proyecto_estrategico_obtiene_datos_objetivos()
*/
function proyecto_estrategico_obtiene_datos_objetivos($ente_planificador, $proyecto) {
$objetivos = array();
// leemos las funciones
$sql_query = "SELECT sap.nid FROM {content_type_objetivos_estrategicos} AS sap INNER JOIN {node} AS n ON sap.nid = n.nid AND sap.vid = n.vid WHERE sap.field_objetivo_ente_nid = %d AND sap.field_objetivo_proyecto_estra_nid = %d AND n.status > 0";
$sql_variables = array();
$sql_variables[] = $ente_planificador->nid;
$sql_variables[] = $proyecto->nid;
$result = db_query($sql_query, $sql_variables);
while($objetivo = db_fetch_object($result)) {
$objetivo_load = node_load($objetivo->nid);
$objetivos[$objetivo_load->nid] = $objetivo_load;
}
return $objetivos;
}
/*
* Implementation of proyecto_estrategico_obtiene_proyectos()
*/
function proyecto_estrategico_obtiene_proyectos($ente_planificador, $fecha) {
$proyectos = array();
// leemos las funciones
$sql_query = "SELECT sap.nid FROM {content_type_proyecto_estrategico} AS sap INNER JOIN {node} AS n ON sap.nid = n.nid AND sap.vid = n.vid WHERE sap.field_estrategico_ente_nid = %d AND n.status > 0";
$sql_variables = array();
$sql_variables[] = $ente_planificador->nid;
$result = db_query($sql_query, $sql_variables);
while($proyecto = db_fetch_object($result)) {
$proyecto_load = node_load($proyecto->nid);
$proyectos[$proyecto_load->nid] = $proyecto_load;
}
return $proyectos;
}
/*
* Implementation of proyecto_estrategico_listar_proyectos()
*/
function proyecto_estrategico_listar_proyectos($ente_planificador) {
global $user;
$tipo_plan = 'proyecto_estrategico_proyectos';
$mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
$current_time = time();
$fecha = FALSE;
$ente = usuario_tiene_ente($user->uid);
if ($mi_fecha[1] + 86399 > $current_time && $mi_fecha[0] < $current_time) {
$fecha = TRUE;
}
if (!$fecha) {
muestra_mensaje($tipo_plan, $ente_planificador->tipo);
}
else {
if ($ente->nid == $ente_planificador->nid) {
$fecha = TRUE;
muestra_mensaje($tipo_plan, $ente_planificador->tipo, 0);
}
elseif (!user_access('admin planificador')) {
$fecha = FALSE;
}
}
$output = '';
$proyectos = proyecto_estrategico_obtiene_proyectos($ente_planificador, $mi_fecha);
$headers_table = array();
$headers_table[] = array(
'data' => t('Código del Proyecto'),
);
$headers_table[] = array(
'data' => t('Proyecto'),
);
$headers_table[] = array(
'data' => t('Producto del proyecto'),
);
$headers_table[] = array(
'data' => t('Lapso de ejecución'),
);
$headers_table[] = array(
'data' => t('Monto total del proyecto'),
);
$count_headers_table = count($headers_table);
if ($fecha) {
$count_headers_table += 4;
$headers_table[] = array(
'data' => t('Operación'),
'colspan' => '4'
);
}
$rows = array();
if (is_array($proyectos) && count($proyectos)) {
foreach($proyectos as $proyecto_id => $proyecto_value) {
$row = array();
//Código del Proyecto
$row[] = array('data' => $proyecto_value->field_estrategico_codigo[0]['value'], );
//titulo del Proyecto
$row[] = array('data' => $proyecto_value->title, );
//Producto del proyecto
$row[] = array('data' => $proyecto_value->field_estrategico_producto[0]['value'], );
//Lapso de ejecución
$row[] = array('data' => $proyecto_value->field_estrategico_ejecucion[0]['value'], );
//Monto total del proyecto
$row[] = array('data' => $proyecto_value->field_estrategico_total[0]['value'], );
$row[] = array(
'data' => l(
t('Ver Proyecto'),
'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto_value->nid. '/ver',
array(
'query' => array(
'destination' => 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico'
)
)
),
);
if ($fecha) {
$row[] = array(
'data' => l(
t('Modificar datos Básicos'),
'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto_value->nid. '/datos_basicos',
array(
'query' => array(
'destination' => 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto_value->nid. '/ver'
)
)
),
);
$row[] = array(
'data' => l(
t('Planes y políticas'),
'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto_value->nid. '/planes_politicas',
array(
'query' => array(
'destination' => 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto_value->nid. '/ver'
)
)
),
);
$row[] = array(
'data' => l(
t('Objetivos estratégicos'),
'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto_value->nid. '/objetivos',
array(
'query' => array(
'destination' => 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto_value->nid. '/ver'
)
)
),
);
}
$rows[] = $row;
}
}
else {
$row = array();
$row[] = array('data' => t('No se encontraron proyectos estratégicos para este ente'), 'colspan' => $count_headers_table);
$rows[] = $row;
}
$output .= theme('table', $headers_table, $rows);
if ($fecha) {
$output .= l(t('Registrar nuevo proyecto'), 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/registrar');
}
return $output;
}
/*
* Implementation of proyecto_estrategico_mostrar_proyectos()
*/
function proyecto_estrategico_mostrar_proyectos($ente_planificador, $proyecto) {
global $user;
$output = '';
drupal_set_title(t('Ver Proyecto @nombre_proyecto', array('@nombre_proyecto' => $proyecto->title)));
$ente = usuario_tiene_ente($user->uid);
$accesso = proyecto_estrategico_obtiene_acceso_proceso('proyecto_estrategico_proyectos', $ente_planificador, $ente);
//proceso de familiarización
$output .= '
' . t('Datos Básicos') . '
';
$contenido = array();
$content = node_build_content($proyecto);
$arreglo = array(
'field_estrategico_codigo' => 'field_estrategico_codigo',
'field_estrategico_necesi' => 'field_estrategico_necesi',
'field_estrategico_objetivo' => 'field_estrategico_objetivo',
'field_estrategico_producto' => 'field_estrategico_producto',
'field_estrategico_cantidad' => 'field_estrategico_cantidad',
'field_estrategico_unidad' => 'field_estrategico_unidad',
'field_estrategico_ejecucion' => 'field_estrategico_ejecucion',
'field_estrategico_poblacion' => 'field_estrategico_poblacion',
'field_estrategico_institu' => 'field_estrategico_institu',
'field_estrategico_total' => 'field_estrategico_total',
'field_estrategico_anual' => 'field_estrategico_anual',
'field_estrategicorespnombre' => 'field_estrategicorespnombre',
'field_estrategicoresptelf' => 'field_estrategicoresptelf',
'field_estrategicorespemail' => 'field_estrategicorespemail',
'field_estrategicoenlanombre' => 'field_estrategicoenlanombre',
'field_estrategicoenlatelf' => 'field_estrategicoenlatelf',
'field_estrategicoenlemail' => 'field_estrategicoenlemail',
);
$node_type = content_types('proyecto_estrategico');
$fields = $node_type['fields'];
foreach($content->content as $field_id => $field_value) {
if (array_key_exists($field_id, $arreglo)) {
$contenido[$field_id] = $field_value;
}
elseif (variable_get('proyecto_estrategico_db' . $field_id, FALSE)) {
$contenido[$field_id] = $field_value;
}
}
$output .= '' . $proyecto->title . '
';
if (is_array($contenido) && count($contenido)) {
$output .= drupal_render($contenido);
}
if ($accesso) {
$output .= l(t('Modificar datos básicos'), 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto->nid. '/datos_basicos');
}
$output .= '';
$output .= '' . t('Planes y políticas que aborda el proyecto') . '
';
$contenido = array();
$taxonomy = array();
$c = db_query(db_rewrite_sql("SELECT v.* FROM {vocabulary} v INNER JOIN {vocabulary_node_types} n ON v.vid = n.vid WHERE n.type = '%s' ORDER BY v.weight, v.name", 'v', 'vid'), $proyecto->type);
while ($vocabulary = db_fetch_object($c)) {
$taxonomy[$vocabulary->vid] = $vocabulary->name;
}
$node_taxonomy = array();
if (is_array($proyecto->taxonomy) && count($proyecto->taxonomy)) {
foreach($proyecto->taxonomy as $tid => $term) {
$term->name_vocabulary = $taxonomy[$term->vid];
$node_taxonomy[$term->vid][] = $term;
}
}
if (is_array($node_taxonomy) && count($node_taxonomy)) {
foreach($node_taxonomy as $tid => $terms) {
$output .= '
';
$output .= '
' . $taxonomy[$tid] . ':
';
$output .= '
';
$i = 1;
foreach($terms as $term) {
$count = $i % 2 ? 'odd' : 'even';
$output .= '
' . $term->name . '
';
$i++;
}
$output .= '
';
$output .= '
';
}
}
$arreglo = array(
'field_estrategicoopolinspoa' => 'field_estrategicoopolinspoa',
);
$estado_p_p = FALSE;
foreach($content->content as $field_id => $field_value) {
if (array_key_exists($field_id, $arreglo)) {
$contenido[$field_id] = $field_value;
if (!$estado_p_p) {
$items = array();
foreach($proyecto->$field_id as $value) {
if ($value['value']) {
$items[] = $value['value'];
}
}
if (count($items)) {
$estado_p_p = TRUE;
}
}
}
elseif (variable_get('proyecto_estrategico_pp' . $field_id, FALSE)) {
$contenido[$field_id] = $field_value;
}
}
if (is_array($contenido) && count($contenido)) {
$output .= drupal_render($contenido);
}
if ($accesso) {
if ($estado_p_p) {
$output .= l(t('Modificar Planes y políticas'), 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto->nid. '/planes_politicas');
}
else {
$output .= l(t('Agregar Planes y políticas'), 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto->nid. '/planes_politicas');
}
}
$output .= '
';
//OBJETIVOS ESTRATEGICOS
$objetivos = array();
$headers_table = array();
$headers_table[] = array(
'data' => t('objetivo estratégico'),
);
$headers_table[] = array(
'data' => t('Perspectiva asociada al objetivo estratégico'),
);
$headers_table[] = array(
'data' => t('Descripción del indicador'),
);
$headers_table[] = array(
'data' => t('Unidad de medida'),
);
$headers_table[] = array(
'data' => t('Meta total'),
);
$headers_table[] = array(
'data' => t('Meta anual'),
);
$headers_table[] = array(
'data' => t('Monto anual'),
);
$count_headers_table = count($headers_table);
if ($accesso) {
$count_headers_table += 3;
$headers_table[] = array(
'data' => t('Operación'),
'colspan' => '3'
);
}
$objetivos = proyecto_estrategico_obtiene_datos_objetivos($ente_planificador, $proyecto);
$rows = array();
if (is_array($objetivos) && count($objetivos)) {
foreach($objetivos as $objetivo_id => $objetivo_value) {
$row = array();
$row[] = array('data' => $objetivo_value->title, );
//Perspectiva
$items = array();
foreach($objetivo_value->field_objetivo_perspectiva as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//indicador
$items = array();
foreach($objetivo_value->field_objetivo_indicador as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//Unidad de medida
$items = array();
foreach($objetivo_value->field_objetivo_medida as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//Meta total
$items = array();
foreach($objetivo_value->field_objetivo_meta_total as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//Meta anual
$items = array();
foreach($objetivo_value->field_objetivo_meta_anual as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//'Monto anual
$items = array();
foreach($objetivo_value->field_objetivo_monto_anual as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
if ($accesso) {
$row[] = array(
'data' => l(
t('Modificar'),
'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto->nid . '/objetivos/' . $objetivo_value->nid . '/modificar',
array(
'query' => array(
'destination' => 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico'
)
)
),
);
}
$row[] = array(
'data' => l(
t('Eliminar'),
'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $funcion_value->nid . '/eliminar',
array(
'query' => array(
'destination' => 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico'
)
)
),
);
$rows[] = $row;
}
}
else {
$row = array();
$row[] = array('data' => t('No se encontraron objetivos estratégicos para este ente'), 'colspan' => $count_headers_table);
$rows[] = $row;
}
$output .= '' . t('Objetivos Estrategicos') . '
';
$output .= theme('table', $headers_table, $rows);
if ($accesso) {
$output .= l(t('Registrar un objetivo estratégico'), 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto->nid . '/objetivos/registrar');
}
$output .= '';
return $output;
}
/*
* Implementation of proyecto_estrategico_datos_basicos_form()
*/
function proyecto_estrategico_datos_basicos_form(&$form_state, $ente_planificador, $proyecto = 0) {
global $user;
$tipo_plan = 'proyecto_estrategico_proyectos';
$mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
$current_time = time();
$fecha = FALSE;
$ente = usuario_tiene_ente($user->uid);
if ($mi_fecha[1] + 86399 > $current_time && $mi_fecha[0] < $current_time) {
$fecha = TRUE;
}
if ($proyecto_estrategico->nid) {
if (!$fecha) {
muestra_mensaje($tipo_plan, $ente_planificador->tipo);
}
else {
if ($ente->nid == $ente_planificador->nid) {
muestra_mensaje($tipo_plan, $ente_planificador->tipo, 0);
}
}
$proyecto_estrategico_load = node_load($proyecto_estrategico->nid);
}
else {
if ($fecha && (user_access('admin planificador') || ($ente->nid == $ente_planificador->nid && user_access('editar datos institucionales de mi ente')))) {
muestra_mensaje($tipo_plan, $ente_planificador->tipo, 0);
}
else {
muestra_mensaje("explicacion", $ente_planificador->tipo);
return t('El ente @ente_planificador aun no tiene proyectos estratégicos.', array('@ente_planificador' => $ente_planificador->title));
}
}
$form = array();
$form['ente_planificador_nid'] = array(
'#type' => 'hidden',
'#default_value' => $ente_planificador->nid,
);
if ($proyecto && isset($proyecto->nid) && $proyecto->nid) {
drupal_set_title(t('Modificar Proyecto @nombre_proyecto', array('@nombre_proyecto' => $proyecto->title)));
$form['#node'] = $proyecto;
}
else {
drupal_set_title(t('Registrar proyecto estratégico'));
$form['#node'] = new stdClass();
$form['#node']->type = 'proyecto_estrategico';
$form['#node']->uid = $user->uid;
$form['#node']->field_estrategico_ente[0]['nid'] = $ente_planificador->nid;
$form['#node']->title = '';
$form['#node']->field_estrategico_anual[0]['value'] = 0;
}
$form['title'] = array(
'#type' => 'textfield',
'#title' => t('Título del Proyecto'),
'#required' => TRUE,
'#default_value' => $form['#node']->title,
);
$node_type = content_types('proyecto_estrategico');
$fields = $node_type['fields'];
$field_form = array();
$arreglo = array(
'field_estrategico_codigo' => 'field_estrategico_codigo',
'field_estrategico_necesi' => 'field_estrategico_necesi',
'field_estrategico_objetivo' => 'field_estrategico_objetivo',
'field_estrategico_producto' => 'field_estrategico_producto',
'field_estrategico_cantidad' => 'field_estrategico_cantidad',
'field_estrategico_unidad' => 'field_estrategico_unidad',
'field_estrategico_ejecucion' => 'field_estrategico_ejecucion',
'field_estrategico_poblacion' => 'field_estrategico_poblacion',
'field_estrategico_institu' => 'field_estrategico_institu',
'field_estrategico_total' => 'field_estrategico_total',
'field_estrategicorespnombre' => 'field_estrategicorespnombre',
'field_estrategicoresptelf' => 'field_estrategicoresptelf',
'field_estrategicorespemail' => 'field_estrategicorespemail',
'field_estrategicoenlanombre' => 'field_estrategicoenlanombre',
'field_estrategicoenlatelf' => 'field_estrategicoenlatelf',
'field_estrategicoenlemail' => 'field_estrategicoenlemail',
);
if (is_array($fields) && count($fields)) {
foreach($fields as $field_id => $field) {
if (array_key_exists($field_id, $arreglo)) {
$field_form[] = $field_id;
}
elseif (variable_get('proyecto_estrategico_db' . $field_id, FALSE)) {
$field_form[] = $field_id;
}
}
}
$form['#proyecto_estrategico_fields_datos'] = $field_form;
if (is_array($field_form) && count($field_form)) {
module_load_include('inc', 'content', 'includes/content.node_form');
foreach ($field_form as $field_id) {
$field = content_fields($field_id, 'proyecto_estrategico');
$form['#field_info'][$field_id] = $field;
$form += (array) content_field_form($form, $form_state, $field);
}
}
$form["field_estrategico_anual"] = array(
'#type' => 'textfield',
'#title' => t('Monto Anual del Proyecto'),
'#required' => TRUE,
'#default_value' => $form['#node']->field_estrategico_anual[0]['value'],
'#size' => 12,
'#weight' => $form['field_estrategico_total']['#weight'] + 1,
);
$form['buttons'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
// Collapsed by default when "Create new revision" is unchecked
'#weight' => 100,
);
$form['buttons']['registrar'] = array(
'#type' => 'submit',
'#default_value' => t('Registrar proyecto estratégico'),
'#weight' => 100,
);
$form['buttons']['cancelar'] = array(
'#type' => 'submit',
'#default_value' => t('Cancelar'),
'#weight' => 101,
'#skip_validation' => TRUE,
);
$form['field_estrategico_codigo']['#weight'] = -11;
return $form;
}
/*
* Implementation of proyecto_estrategico_datos_basicos_form_validate()
*/
function proyecto_estrategico_datos_basicos_form_validate($form, &$form_state) {
if (!is_numeric($form_state['values']['field_estrategico_anual'])) {
form_set_error('field_estrategico_anual', t('El monto anual del proyecto deberia ser un número'));
}
if ($form_state['values']['field_estrategico_total'][0]['value'] < $form_state['values']['field_estrategico_anual']) {
form_set_error('field_estrategico_anual', t('El monto anual del proyecto no debe ser mayor al monto total del proyecto'));
}
}
/*
* Implementation of proyecto_estrategico_datos_basicos_form_submit()
*/
function proyecto_estrategico_datos_basicos_form_submit($form, &$form_state) {
$op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
if ($op == t('Cancelar')) {
$form_state['redirect'] = 'planificacion/' . $form_state['values']['ente_planificador_nid'] . '/proyecto_estrategico';
return;
}
module_load_include('inc', 'node', 'node.pages');
$node_load = $form['#node'];
$field_form = $form['#proyecto_estrategico_fields_datos'];
$form_values = $form_state['values'];
if (is_array($field_form) && count($field_form)) {
foreach ($field_form as $field_id) {
if (isset($form_values[$field_id]) && is_array($form_values[$field_id])) {
foreach($form_values[$field_id] as $id => $value) {
if (is_numeric($id) && isset($form_values[$field_id][$id]['_error_element'])) {
unset($form_values[$field_id][$id]['_error_element']);
}
}
$node_load->{$field_id} = $form_values[$field_id];
}
}
}
$node_load->field_estrategico_anual[0]['value'] = $form_state['values']['field_estrategico_anual'];
$node_load->title = check_plain($form_state['values']['title']);
$node_load->log = t('Agregado el proyecto estrátegico del actor planificador');
$node_load->revision = 1;
node_save($node_load);
drupal_set_message(t("Agregado el proyecto estrátegico del actor planificador"));
if ($_REQUEST['destination']) {
$form_state['redirect'] = url('planificacion/' . $form_state['values']['ente_planificador_nid'] . '/proyecto_estrategico',
array(
'query' => array(
'destination' => $_REQUEST['destination'],
),
'absolute' => TRUE,
)
);
unset($_REQUEST['destination']);
}
else {
// add redirect
$form_state['redirect'] = 'planificacion/' . $form_state['values']['ente_planificador_nid'] . '/proyecto_estrategico';
}
}
/*
* Implementation of proyecto_estrategico_planes_politicas_form()
*/
function proyecto_estrategico_planes_politicas_form(&$form_state, $ente_planificador, $proyecto = 0) {
global $user;
$tipo_plan = 'proyecto_estrategico_proyectos';
$mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
$current_time = time();
$fecha = FALSE;
$ente = usuario_tiene_ente($user->uid);
if ($mi_fecha[1] + 86399 > $current_time && $mi_fecha[0] < $current_time) {
$fecha = TRUE;
}
if ($proyecto_estrategico->nid) {
if (!$fecha) {
muestra_mensaje($tipo_plan, $ente_planificador->tipo);
}
else {
if ($ente->nid == $ente_planificador->nid) {
muestra_mensaje($tipo_plan, $ente_planificador->tipo, 0);
}
}
$proyecto_estrategico_load = node_load($proyecto_estrategico->nid);
}
else {
if ($fecha && (user_access('admin planificador') || ($ente->nid == $ente_planificador->nid && user_access('editar datos institucionales de mi ente')))) {
muestra_mensaje($tipo_plan, $ente_planificador->tipo, 0);
}
else {
muestra_mensaje("explicacion", $ente_planificador->tipo);
return t('El ente @ente_planificador aun no tiene proyectos estratégicos.', array('@ente_planificador' => $ente_planificador->title));
}
}
$form = array();
$form['ente_planificador_nid'] = array(
'#type' => 'hidden',
'#default_value' => $ente_planificador->nid,
);
drupal_set_title(t('Modificar Planes y políticas del proyecto @nombre_proyecto', array('@nombre_proyecto' => $proyecto->title)));
//add taxonomy if exist
if (module_exists('taxonomy')) {
if (!isset($proyecto->taxonomy)) {
$terms = empty($proyecto->nid) ? array() : taxonomy_node_get_terms($proyecto);
}
else {
// After a preview or form reload, the terms must be converted to objects.
reset($proyecto->taxonomy);
if (!is_object(current($proyecto->taxonomy))) {
$proyecto->taxonomy = taxonomy_preview_terms($proyecto);
}
$terms = $proyecto->taxonomy;
}
$c = db_query(db_rewrite_sql("SELECT v.* FROM {vocabulary} v INNER JOIN {vocabulary_node_types} n ON v.vid = n.vid WHERE n.type = '%s' ORDER BY v.weight, v.name", 'v', 'vid'), $proyecto->type);
while ($vocabulary = db_fetch_object($c)) {
if ($vocabulary->tags) {
if (isset($form_state['node_preview'])) {
// Typed string can be changed by the user before preview,
// so we just insert the tags directly as provided in the form.
$typed_string = $proyecto->taxonomy['tags'][$vocabulary->vid];
}
else {
$typed_string = taxonomy_implode_tags($terms, $vocabulary->vid) . (array_key_exists('tags', $terms) ? $terms['tags'][$vocabulary->vid] : NULL);
}
if ($vocabulary->help) {
$help = filter_xss_admin($vocabulary->help);
}
else {
$help = t('A comma-separated list of terms describing this content. Example: funny, bungee jumping, "Company, Inc.".');
}
$form['taxonomy']['tags'][$vocabulary->vid] = array('#type' => 'textfield',
'#title' => $vocabulary->name,
'#description' => $help,
'#required' => $vocabulary->required,
'#default_value' => $typed_string,
'#autocomplete_path' => 'taxonomy/autocomplete/'. $vocabulary->vid,
'#weight' => $vocabulary->weight,
'#maxlength' => 1024,
);
}
else {
// Extract terms belonging to the vocabulary in question.
$default_terms = array();
foreach ($terms as $term) {
// Free tagging has no default terms and also no vid after preview.
if (isset($term->vid) && $term->vid == $vocabulary->vid) {
$default_terms[$term->tid] = $term;
}
}
$form['taxonomy'][$vocabulary->vid] = taxonomy_form($vocabulary->vid, array_keys($default_terms), filter_xss_admin($vocabulary->help));
$form['taxonomy'][$vocabulary->vid]['#weight'] = $vocabulary->weight;
$form['taxonomy'][$vocabulary->vid]['#required'] = $vocabulary->required;
}
}
if (!empty($form['taxonomy']) && is_array($form['taxonomy'])) {
if (count($form['taxonomy']) > 1) {
// Add fieldset only if form has more than 1 element.
$form['taxonomy'] += array(
'#type' => 'fieldset',
'#title' => t('Planes y Políticas'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);
}
$form['taxonomy']['#weight'] = 8;
$form['taxonomy']['#tree'] = TRUE;
}
}
$form['#node'] = $proyecto;
$node_type = content_types('proyecto_estrategico');
$fields = $node_type['fields'];
$field_form = array();
$arreglo = array(
'field_estrategicoopolinspoa' => 'field_estrategicoopolinspoa',
);
if (is_array($fields) && count($fields)) {
foreach($fields as $field_id => $field) {
if (array_key_exists($field_id, $arreglo)) {
$field_form[] = $field_id;
}
elseif (variable_get('proyecto_estrategico_pp' . $field_id, FALSE)) {
$field_form[] = $field_id;
}
}
}
$form['#proyecto_estrategico_fields_datos'] = $field_form;
if (is_array($field_form) && count($field_form)) {
module_load_include('inc', 'content', 'includes/content.node_form');
foreach ($field_form as $field_id) {
$field = content_fields($field_id, 'proyecto_estrategico');
$form['#field_info'][$field_id] = $field;
$form += (array) content_field_form($form, $form_state, $field);
}
}
$form['buttons'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
// Collapsed by default when "Create new revision" is unchecked
'#weight' => 100,
);
$form['buttons']['registrar'] = array(
'#type' => 'submit',
'#default_value' => t('Registrar Planes y políticas'),
'#weight' => 100,
);
$form['buttons']['cancelar'] = array(
'#type' => 'submit',
'#default_value' => t('Cancelar'),
'#weight' => 101,
'#skip_validation' => TRUE,
);
return $form;
}
/*
* Implementation of proyecto_estrategico_planes_politicas_form_submit()
*/
function proyecto_estrategico_planes_politicas_form_submit($form, &$form_state) {
$op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
if ($op == t('Cancelar')) {
$form_state['redirect'] = 'planificacion/' . $form_state['values']['ente_planificador_nid'] . '/proyecto_estrategico';
return;
}
module_load_include('inc', 'node', 'node.pages');
$node_load = $form['#node'];
$field_form = $form['#proyecto_estrategico_fields_datos'];
$form_values = $form_state['values'];
if (isset($form_state['values']['taxonomy'])) {
$node_load->taxonomy = $form_state['values']['taxonomy'];
}
if (is_array($field_form) && count($field_form)) {
foreach ($field_form as $field_id) {
if (isset($form_values[$field_id]) && is_array($form_values[$field_id])) {
foreach($form_values[$field_id] as $id => $value) {
if (is_numeric($id) && isset($form_values[$field_id][$id]['_error_element'])) {
unset($form_values[$field_id][$id]['_error_element']);
}
}
$node_load->{$field_id} = $form_values[$field_id];
}
}
}
$node_load->log = t('Agregado el proyecto estrátegico del actor planificador');
$node_load->revision = 1;
node_save($node_load);
drupal_set_message(t("Agregado el proyecto estrátegico del actor planificador"));
if ($_REQUEST['destination']) {
$form_state['redirect'] = url('planificacion/' . $form_state['values']['ente_planificador_nid'] . '/proyecto_estrategico',
array(
'query' => array(
'destination' => $_REQUEST['destination'],
),
'absolute' => TRUE,
)
);
unset($_REQUEST['destination']);
}
else {
// add redirect
$form_state['redirect'] = 'planificacion/' . $form_state['values']['ente_planificador_nid'] . '/proyecto_estrategico';
}
}
/*
* Implementation of proyecto_estrategico_objetivos_estrategicos_registrar_form()
*/
function proyecto_estrategico_objetivos_estrategicos_registrar_form(&$form_state, $ente_planificador, $proyecto_estrategico, $objetivo = 0) {
global $user;
$tipo_plan = 'proyecto_estrategico_proyectos';
$mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
$current_time = time();
$fecha = FALSE;
$ente = usuario_tiene_ente($user->uid);
if ($mi_fecha[1] + 86399 > $current_time && $mi_fecha[0] < $current_time) {
$fecha = TRUE;
}
if (!$fecha) {
muestra_mensaje($tipo_plan, $ente_planificador->tipo);
}
else {
if ($ente->nid == $ente_planificador->nid) {
muestra_mensaje($tipo_plan, $ente_planificador->tipo, 0);
}
}
$form = array();
$form['#ente_planificador'] = $ente_planificador;
$form['#proyecto_estrategico'] = $proyecto_estrategico;
$form['#objetivo_estrategico'] = is_object($objetivo) ? $objetivo : 0;;
if (!$form['#objetivo_estrategico']) {
$title = t('Registrar objetivo estratégico');
drupal_set_title($title);
$objetivo = new stdClass();
$objetivo->type = 'objetivos_estrategicos';
$objetivo->uid = $user->uid;
$objetivo->field_objetivo_ente[0] = array('nid' => $ente_planificador->nid);
$objetivo->field_objetivo_proyecto_estra[0] = array('nid' => $proyecto_estrategico->nid);
$form['#objetivo_estrategico'] = $objetivo;
}
else{
drupal_set_title(t('Modificar objetivo estratégico @nombre_objetivo', array('@nombre_objetivo' => $objetivo->title)));
$title = t('Modificar objetivo estratégico');
}
$form['title'] = array(
'#type' => 'textfield',
'#title' => t('Objetivo estratégico'),
'#required' => FALSE,
'#default_value' => isset($objetivo->title) ? $objetivo->title : '',
);
$node_type = content_types('objetivos_estrategicos');
$fields = $node_type['fields'];
$field_form = array();
$arreglo = array(
'field_objetivo_perspectiva' => 'field_objetivo_perspectiva',
'field_objetivo_indicador' => 'field_objetivo_indicador',
'field_objetivo_medida' => 'field_objetivo_medida',
'field_objetivo_meta_total' => 'field_objetivo_meta_total',
'field_objetivo_meta_anual' => 'field_objetivo_meta_anual',
'field_objetivo_monto_anual' => 'field_objetivo_monto_anual',
);
if (is_array($fields) && count($fields)) {
foreach($fields as $field_id => $field) {
if (array_key_exists($field_id, $arreglo)) {
$field_form[] = $field_id;
}
elseif (variable_get('proyecto_estrategico_oes_' . $field_id, FALSE)) {
$field_form[] = $field_id;
}
}
}
$form['#proyecto_estrategico_fields_datos'] = $field_form;
if (is_array($field_form) && count($field_form)) {
module_load_include('inc', 'content', 'includes/content.node_form');
$form['#node'] = $objetivo;
foreach ($field_form as $field_id) {
$field = content_fields($field_id, 'objetivos_estrategicos');
$form['#field_info'][$field_id] = $field;
$form += (array) content_field_form($form, $form_state, $field);
}
}
$form['buttons'] = array(
'#type' => 'fieldset',
'#collapsible' => TRUE,
// Collapsed by default when "Create new revision" is unchecked
'#weight' => 100,
);
$form['buttons']['registrar'] = array(
'#type' => 'submit',
'#default_value' => $title,
'#weight' => 100,
);
$form['buttons']['cancelar'] = array(
'#type' => 'submit',
'#default_value' => t('Cancelar'),
'#weight' => 101,
'#skip_validation' => TRUE,
);
return $form;
}
/*
* Implementation of proyecto_estrategico_objetivos_estrategicos_registrar_form_submit()
*/
function proyecto_estrategico_objetivos_estrategicos_registrar_form_submit($form, &$form_state) {
$node_load = $form['#objetivo_estrategico'];
$op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
if ($op == t('Cancelar')) {
$form_state['redirect'] = 'planificacion/' . $node_load->field_objetivo_ente[0]['nid'] . '/proyecto_estrategico/' . $node_load->field_objetivo_proyecto_estra[0]['nid'];
return;
}
$field_form = $form['#ente_planificador_fields_datos'];
module_load_include('inc', 'node', 'node.pages');
$node_load->title = check_plain($form_state['values']['title']);
$field_form = $form['#proyecto_estrategico_fields_datos'];
$form_values = $form_state['values'];
if (is_array($field_form) && count($field_form)) {
foreach ($field_form as $field_id) {
if (isset($form_values[$field_id]) && is_array($form_values[$field_id])) {
foreach($form_values[$field_id] as $id => $value) {
if (is_numeric($id) && isset($form_values[$field_id][$id]['_error_element'])) {
unset($form_values[$field_id][$id]['_error_element']);
}
}
$node_load->{$field_id} = $form_values[$field_id];
}
}
}
$node_load->log = t('Modificado el objetivos estratégico del ente');
$node_load->revision = 1;
node_save($node_load);
drupal_set_message(t('Se modifico la información del objetivos estratégico del ente @nombre_objetivo', array('@nombre_objetivo' => $node_load->title)));
if ($_REQUEST['destination']) {
$form_state['redirect'] = url('planificacion/' . $node_load->field_objetivo_ente[0]['nid'] . '/proyecto_estrategico/' . $node_load->field_objetivo_proyecto_estra[0]['nid'],
array(
'query' => array(
'destination' => $_REQUEST['destination'],
),
'absolute' => TRUE,
)
);
unset($_REQUEST['destination']);
}
else {
// add redirect
$form_state['redirect'] = 'planificacion/' . $node_load->field_objetivo_ente[0]['nid'] . '/proyecto_estrategico/' . $node_load->field_objetivo_proyecto_estra[0]['nid'];
}
}
/**
* Implementation of hook_planner_items_toolbar().
*/
function proyecto_estrategico_planner_items_toolbar($ente_planificador, $handler_icon) {
$link = array();
$icon_path = entes_planificadores_toolbar_get_icon_path('planner', 'proyectoes', $handler_icon);
$link[] = array(
'path' => 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico',
'icon_path' => $icon_path,
'icon' => theme('image', $icon_path, t('Consultar Información Institucional del actor planificador'), t('Consultar Información Institucional del actor planificador'), array('class' => 'handler-icon-' . $handler_icon)),
'title' => t('Proyectos estrategicos'),
'description' => t('Consultar Información de los proyectos estrategicos del actor planificador'),
'category' => 'planner',
);
return $link;
}
/*
* Implementation of hook_node_info()
*/
function proyecto_estrategico_node_info() {
return array(
'proyecto_estrategico' => array(
'name' => t('Proyecto Estratégico'),
'description' => '',
'has_title' => TRUE,
'title_label' => 'Título del Proyecto',
'has_body' => FALSE,
'body_label' => 'Cuerpo',
'module' => 'proyecto_estrategico',
),
'objetivos_estrategicos' => array(
'name' => t('Objetivos estratégicos'),
'description' => '',
'has_title' => TRUE,
'title_label' => 'Título',
'has_body' => TRUE,
'body_label' => 'Cuerpo',
'module' => 'proyecto_estrategico',
),
);
}
/*
* Implementation of hook_form()
*/
function proyecto_estrategico_form(&$node, $form_state) {
return node_content_form($node, $form_state);
}
/*
* Implementation of hook_access()
*/
function proyecto_estrategico_access($op, $node, $account) {
global $user;
if ($op == 'view') {
return user_access('ver planificador') || user_access('admin planificador');
}
if ($op == 'create') {
return (user_access('admin planificador'));
}
if ($op == 'delete') {
return (user_access('admin planificador'));
}
}
/*
* hook_form_alter()
*/
function proyecto_estrategico_form_alter(&$form, $form_state, $form_id) {
//impedir que los campos sean borrados con la interfaz
if ($form_id == 'content_field_overview_form' && $form['#type_name'] == 'proyecto_estrategico'){
$arreglo = array(
'field_estrategico_codigo',
'field_estrategico_necesi',
'field_estrategico_objetivo',
'field_estrategico_producto',
'field_estrategico_cantidad',
'field_estrategico_unidad',
'field_estrategico_ejecucion',
'field_estrategico_poblacion',
'field_estrategico_institu',
'field_estrategico_total',
'field_estrategicorespnombre',
'field_estrategicoresptelf',
'field_estrategicorespemail',
'field_estrategicoenlanombre',
'field_estrategicoenlatelf',
'field_estrategicoenlemail',
'field_estrategicoopolinspoa',
'field_estrategico_ente',
'field_estrategico_anual',
);
foreach ($arreglo as $valor) {
if (isset($form[$valor]['remove']['#value'])) {
$form[$valor]['remove']['#value'] = '';
}
}
}
if ($form_id == 'content_field_remove_form' && $form['type_name']['#value'] == 'proyecto_estrategico'){
$arreglo = array(
'field_estrategico_codigo',
'field_estrategico_necesi',
'field_estrategico_objetivo',
'field_estrategico_producto',
'field_estrategico_cantidad',
'field_estrategico_unidad',
'field_estrategico_ejecucion',
'field_estrategico_poblacion',
'field_estrategico_institu',
'field_estrategico_total',
'field_estrategicorespnombre',
'field_estrategicoresptelf',
'field_estrategicorespemail',
'field_estrategicoenlanombre',
'field_estrategicoenlatelf',
'field_estrategicoenlemail',
'field_estrategicoopolinspoa',
'field_estrategico_ente',
'field_estrategico_anual',
);
foreach ($arreglo as $valor) {
if($form['field_name']['#value'] == $valor) {
$form['actions']['submit']['#access'] = FALSE;
$form['description']['#value'] = t('Acción no permitida este campo ha sido agregado por un modulo.');
}
}
}
if ($form_id == 'content_field_overview_form' && $form['#type_name'] == 'objetivos_estrategicos'){
$arreglo = array(
'field_objetivo_perspectiva',
'field_objetivo_indicador',
'field_objetivo_medida',
'field_objetivo_meta_total',
'field_objetivo_meta_anual',
'field_objetivo_monto_anual',
'field_objetivo_ente',
'field_objetivo_proyecto_estra',
);
foreach ($arreglo as $valor) {
if (isset($form[$valor]['remove']['#value'])) {
$form[$valor]['remove']['#value'] = '';
}
}
}
if ($form_id == 'content_field_remove_form' && $form['type_name']['#value'] == 'objetivos_estrategicos'){
$arreglo = array(
'field_objetivo_perspectiva',
'field_objetivo_indicador',
'field_objetivo_medida',
'field_objetivo_meta_total',
'field_objetivo_meta_anual',
'field_objetivo_monto_anual',
'field_objetivo_ente',
'field_objetivo_proyecto_estra',
);
foreach ($arreglo as $valor) {
if($form['field_name']['#value'] == $valor) {
$form['actions']['submit']['#access'] = FALSE;
$form['description']['#value'] = t('Acción no permitida este campo ha sido agregado por un modulo.');
}
}
}
}
/**
* Implementation of hook_form_content_field_edit_form_alter(): content_field_edit_form.
*/
function proyecto_estrategico_form_content_field_edit_form_alter(&$form, $form_state) {
if ($form['#field']['type_name'] == 'proyecto_estrategico') {
$arreglo = array(
'db' => t('Datos Básicos'),
'pp' => t('Planes y políticas'),
);
foreach($arreglo as $id => $value) {
$form['widget']['datos_institucionales' . $id] = array(
'#title' => t('Información intitucional (incluir en @value)', array('@value' => $value)),
'#type' => 'checkbox',
'#default_value' => variable_get('proyecto_estrategico_' . $id . $form['#field']['field_name'], FALSE),
'#return_value' => '1',
);
}
$form['#submit'][] = 'proyecto_estrategico_proyecto_content_field_edit_form_submit';
}
if ($form['#field']['type_name'] == 'objetivos_estrategicos') {
$form['widget']['proyecto_estrategico_oes'] = array(
'#title' => t('Información intitucional (incluir en @value)', array('@value' => $value)),
'#type' => 'checkbox',
'#default_value' => variable_get('proyecto_estrategico_oes_' . $form['#field']['field_name'], FALSE),
'#return_value' => '1',
);
$form['#submit'][] = 'datos_institucionales_objetivos_estrategicos_content_field_edit_form_submit';
}
}
/**
* Implementation of proyecto_estrategico_proyecto_content_field_edit_form_submit()
*/
function proyecto_estrategico_proyecto_content_field_edit_form_submit($form, &$form_state) {
$arreglo = array(
'db' => t('Datos Básicos'),
'pp' => t('Planes y políticas'),
);
foreach($arreglo as $id => $value) {
variable_set('proyecto_estrategico_' . $id . $form_state['values']['field_name'], $form_state['values']['datos_institucionales' . $id]);
}
}
/**
* Implementation of datos_institucionales_objetivos_estrategicos_content_field_edit_form_submit()
*/
function datos_institucionales_objetivos_estrategicos_content_field_edit_form_submit($form, &$form_state) {
variable_set('proyecto_estrategico_oes_' . $id . $form_state['values']['field_name'], $form_state['values']['proyecto_estrategico_oes']);
}
/**
* Implementation of hook_views_api().
*/
function proyecto_estrategico_views_api() {
return array(
'api' => '2.0',
'path' => drupal_get_path('module', 'proyecto_estrategico') . '/views',
);
}
/**
* Implementation of hook_planificadores_exportar_alter()
*/
function proyecto_estrategico_planificadores_exportar_alter(&$tipos) {
$tipos['proyecto_estrategico']['title'] = t('Proyecto estrategico');
$tipos['proyecto_estrategico']['callback'] = '_proyecto_estrategico_exportar';
}
/**
* Implementation of _proyecto_estrategico_exportar()
*/
function _proyecto_estrategico_exportar($entes, $ente_planificador) {
$output = '';
drupal_set_title(t('Importar situacion actual preliminar'));
$sql_query = "SELECT nid FROM {content_type_situacion_actual_preliminar} WHERE field_version_planificador_nid = %d";
$explicacion = db_fetch_object(db_query($sql_query, $entes->nid));
$tipo_plan = 'proyecto_estrategico_proyectos';
$mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
$proyectos = proyecto_estrategico_obtiene_proyectos($ente_planificador, $mi_fecha);
if (is_array($proyectos) && count($proyectos)) {
$explicacion_load = node_load($explicacion->nid);
$headers_table = array();
$headers_table[] = array('data' => t('Proyectos'));
$row = array();
$row[] = array('data' => drupal_get_form('proyecto_estrategico_exportar_proyecto_estrategico_form', $ente_planificador, $proyectos));
$rows[] = $row;
$output .= theme('table', $headers_table, $rows);
}
return $output;
}
function proyecto_estrategico_exportar_proyecto_estrategico_form($form_state, $ente_planificador, $proyectos = array()) {
$form = array();
$form['#ente_planificador'] = $ente_planificador;
$form['#proyectos'] = $proyectos;
if (is_array($proyectos) && count($proyectos)) {
foreach ($proyectos as $id => $value) {
$form[$id] = array(
'#type' => 'checkbox',
'#title' => $value->title,
);
}
}
$form['buttons']['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
'#weight' => 20
);
return $form;
}
function proyecto_estrategico_exportar_proyecto_estrategico_form_submit($form, &$form_state) {
global $user;
module_load_include('inc', 'node', 'node.pages');
$ente_planificador = $form['#ente_planificador'];
$proyectos = $form['#proyectos'];
$values = array();
$counter = 0;
if (is_array($proyectos) && count($proyectos)) {
foreach ($proyectos as $id => $proyecto) {
if ($form_state['values'][$id]) {
unset($proyecto->nid);
unset($proyecto->vid);
$proyecto->uid = $user->uid;
$proyecto->field_estrategico_ente[0]['nid'] = $ente_planificador->nid;
node_save($proyecto);
$counter++;
}
}
}
drupal_set_message(t('Se agregaron @counter proyectos al ente @ente_name', array('@counter' => $counter, '@ente_name' => $ente_planificador->title)));
}
/*
* Implementation of proyecto_estrategico_mostrar_objetivos()
*/
function proyecto_estrategico_mostrar_objetivos($ente_planificador, $proyecto) {
global $user;
$output = '';
drupal_set_title(t('Ver Proyecto @nombre_proyecto', array('@nombre_proyecto' => $proyecto->title)));
$ente = usuario_tiene_ente($user->uid);
$accesso = proyecto_estrategico_obtiene_acceso_proceso('proyecto_estrategico_proyectos', $ente_planificador, $ente);
$objetivos = array();
$headers_table = array();
$headers_table[] = array(
'data' => t('objetivo estratégico'),
);
$headers_table[] = array(
'data' => t('Perspectiva asociada al objetivo estratégico'),
);
$headers_table[] = array(
'data' => t('Descripción del indicador'),
);
$headers_table[] = array(
'data' => t('Unidad de medida'),
);
$headers_table[] = array(
'data' => t('Meta total'),
);
$headers_table[] = array(
'data' => t('Meta anual'),
);
$headers_table[] = array(
'data' => t('Monto anual'),
);
$count_headers_table = count($headers_table);
if ($accesso) {
$count_headers_table += 3;
$headers_table[] = array(
'data' => t('Operación'),
'colspan' => '3'
);
}
$objetivos = proyecto_estrategico_obtiene_datos_objetivos($ente_planificador, $proyecto);
$rows = array();
if (is_array($objetivos) && count($objetivos)) {
foreach($objetivos as $objetivo_id => $objetivo_value) {
$row = array();
$row[] = array('data' => $objetivo_value->title, );
//Perspectiva
$items = array();
foreach($objetivo_value->field_objetivo_perspectiva as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//indicador
$items = array();
foreach($objetivo_value->field_objetivo_indicador as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//Unidad de medida
$items = array();
foreach($objetivo_value->field_objetivo_medida as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//Meta total
$items = array();
foreach($objetivo_value->field_objetivo_meta_total as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//Meta anual
$items = array();
foreach($objetivo_value->field_objetivo_meta_anual as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
//'Monto anual
$items = array();
foreach($objetivo_value->field_objetivo_monto_anual as $value) {
$items[] = $value['value'];
}
$row[] = array('data' => theme('item_list', $items), );
if ($accesso) {
$row[] = array(
'data' => l(
t('Modificar'),
'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto->nid . '/objetivos/' . $objetivo_value->nid . '/modificar',
array(
'query' => array(
'destination' => 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico'
)
)
),
);
}
$row[] = array(
'data' => l(
t('Eliminar'),
'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $funcion_value->nid . '/eliminar',
array(
'query' => array(
'destination' => 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico'
)
)
),
);
$rows[] = $row;
}
}
else {
$row = array();
$row[] = array('data' => t('No se encontraron objetivos estratégicos para este ente'), 'colspan' => $count_headers_table);
$rows[] = $row;
}
$output .= '' . t('Objetivos Estrategicos') . '
';
$output .= theme('table', $headers_table, $rows);
if ($accesso) {
$output .= l(t('Registrar un objetivo estratégico'), 'planificacion/' . $ente_planificador->nid . '/proyecto_estrategico/' . $proyecto->nid . '/objetivos/registrar');
}
$output .= '';
return $output;
}