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; }