t('January'),
1 => t('February'),
2 => t('March'),
3 => t('April'),
4 => t('May'),
5 => t('June'),
6 => t('July'),
7 => t('August'),
8 => t('September'),
9 => t('Octuber'),
10 => t('November'),
11 => t('December'),
);
define('MESES', json_encode($meses)); //constante para la manupulacion de los meses del anho
/**
* Implementation of hook_menu_alter()
*/
function seguimiento_proyectos_operativos_menu_alter(&$items) {
//incluyendo las funciones del modulo de seguimiento
module_load_include('module', 'proyectos_operativos_seguimiento', 'proyectos_operativos_seguimiento');
$items['proyectosop/%node/seguimiento_proyecto']['page callback'] = 'seguimiento_proyectos_operativos_acciones_views_page';
$items['proyectosop/%node/seguimiento_proyecto']['file'] = '';
$items['node/%node/seguimiento_proyecto']['page callback'] = 'seguimiento_proyectos_operativos_acciones_views_page';
$items['node/%node/seguimiento_proyecto']['file'] = '';
$items['node/%node/fase_de_seguimiento_proyecto_y_aes/mes/%messegaepartida']['page callback'] = 'seguimiento_proyectos_operativos_acciones_views_page';
$items['node/%node/fase_de_seguimiento_proyecto_y_aes/mes/%messegaepartida']['file'] = '';
}
/**
* Vista del seguimiento de proyectos de forma general
*/
function seguimiento_proyectos_operativos_acciones_views_page($node) {
module_load_include('inc', 'accion_especifica_de_proyecto_seguimiento', 'includes/ae_proyecto/seguimiento_accion_especifica_deproyecto.pages');
global $user;
$rows = array();
$row2 = array();
$header = array();
$header2 = array();
//roles de los usuarios
$rol_control = variable_get('ActorPlanificadorMacro', 2);
$rol_supervisor = variable_get('ActorPlanificadorMicro', 2);
$rol_enlace = variable_get('ActorPlanificadorEnlace', 2);
$roles = array_keys($user->roles);
$mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($node);
$format_decimal = variable_get('proyectos_operativos_number_dec_point', ',');
$format_cnt = variable_get('proyectos_operativos_number_decimals', ',');
$format_miles = variable_get('proyectos_operativos_number_thousands_sep', '.');
$meses = json_decode(MESES);
drupal_set_title(t('Seguimiento y Control de Proyecto Operativo'.' (mes de '. $meses[$mes_fase_seg] . ')'));
//calcular variacion por reformulacion
$variacion_planificado_mes = _seguimiento_mesactual_metafisica_proyecto_reformulaciones_load($node, $mes_fase_seg);
$valor_texto = $mes > 0 ? 'value_' . $mes : 'value';
$cant_metafisica_planif = $node->field_proyecto_meta_fisica[0][$valor_texto] + $variacion_planificado_mes;
$consultaseguimientoactual = _seguimiento_mesactual_proyecto_load($node, $mes_fase_seg);
$estado = ((isset($consultaseguimientoactual['segmes']['estado'])) && ($consultaseguimientoactual['segmes']['estado'] > 0) )? $consultaseguimientoactual['segmes']['estado'] : -1;
$transiciones_dispo = _obtener_transiciones_disponibles_proyecto($node, $mes_fase_seg);
if ($user->uid == 1) {
// Superuser is special.
$roles_transition = 'ALL';
}
else {
$roles_transition = $roles;
if ($user->uid == $consultaseguimientoactual['segmes']['uid']&& $consultaseguimientoactual['segmes']['uid'] > 0) {//verificar si es el autor del seguimiento
$roles_transition += array('author' => 'author');
}
}
$transitions = workflow_allowable_transitions($estado, 'to', $roles_transition);
$cant_metafisica_ej = isset($consultaseguimientoactual['segmes']['ejecutadometafisica']) ? $consultaseguimientoactual['segmes']['ejecutadometafisica'] : 0;
$zonacritica1 = $cant_metafisica_planif ? $cant_metafisica_ej/$cant_metafisica_planif : -1;
$porczonacritica1 = $zonacritica1 >= 0 ? ($zonacritica1 * 100) . '%' : $cant_metafisica_ej ? 'N/D' : 'N/A';
$header[] = array('data' => t('Partida'));
$header[] = array('data' => t('Asignado'));
$header[] = array('data' => t('Comprometido'));
$header[] = array('data' => t('Causado'));
$header[] = array('data' => t('Pagado'));
$header[] = array('data' => t('% de Inversión'));
$header[] = array('data' => t('Estatus de la Inversión'));
$header[] = array('data' => t('Operación'));
$seguimiento_financiero_proyecto = _cargar_totales_seguimiento_aes_delproyecto($node, $mes_fase_seg);
foreach ($seguimiento_financiero_proyecto['seg_financiero_aes'] as $acciones_especif) {
$content = '';
$row = array();
$causadov = $acciones_especif['totalCausadoAEs'];
$asignadov = $acciones_especif['totalAsignadoAEs'];
$estatus_ejecucion = _calcularzonacritica($asignadov, $causadov);
$porczonacritica = $estatus_ejecucion['porczonacritica'];
$textozona = $estatus_ejecucion['textozona'];
$colorzona = $estatus_ejecucion['colorzona'];
$colorfontzona = $estatus_ejecucion['colorfontzona'];
$nodo_ae = node_load($acciones_especif['idnodosAEs']);
$transiciones_dispo_ac = _obtener_transiciones_disponibles($nodo_ae, $mes_fase_seg);
$row[] = array('data' => $acciones_especif['nombreAEs'],);
if (_mes_dentro_de_duracion_ae_proyecto($nodo_ae, $mes_fase_seg)) {
$row[] = array('data' => number_format($asignadov, $format_cnt, $format_decimal, $format_miles));
$row[] = array('data' => number_format($causadov, $format_cnt, $format_decimal, $format_miles));
$row[] = array('data' => number_format($acciones_especif['totalCausadoAEs'], $format_cnt, $format_decimal, $format_miles));
$row[] = array('data' => number_format($acciones_especif['totalPagadoAEs'], $format_cnt, $format_decimal, $format_miles));
$row[] = array('data' => $porczonacritica,);
$row[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona);
//operaciones de la accion especifica
if (_accion_especifica_de_proyecto_seguimiento_modificar_mes_access($nodo_ae, $mes_fase_seg)) {
if (isset($transiciones_dispo_ac['nombre_estado_actual'])) {
$content .= '
' . l(t('Modificar'), 'node/' . $nodo_ae->nid . '/seguimiento_aeproyecto/partidas/' . $mes_fase_seg . '/edit') . '';
}
else {
$content .= '
'.l(t('Ingresar'), 'node/' . $nodo_ae->nid . '/seguimiento_aeproyecto/partidas/' . $mes_fase_seg . '/edit') . '';
}
}
$row[] = $content;
}
else {
$row[] = array('data' => '-',);
$row[] = array('data' => '-',);
$row[] = array('data' => '-',);
$row[] = array('data' => '-',);
$row[] = array('data' => '-',);
$row[] = array('data' => '-',);
}
$rows[] = $row;
}
$header2[] = array('data' => t('Planificado'));
$header2[] = array('data' => t('Ejecutado'));
$header2[] = array('data' => t('% de Logro'));
$header2[] = array('data' => t('Estatus de la Inversión'));
$rows2 = array();
$planificadov = $cant_metafisica_planif;
$ejecutadov = $cant_metafisica_ej;
$estatus_ejecucion = _calcularzonacritica($planificadov, $ejecutadov);
$porczonacritica = $estatus_ejecucion['porczonacritica'];
$textozona = $estatus_ejecucion['textozona'];
$colorzona = $estatus_ejecucion['colorzona'];
$colorfontzona = $estatus_ejecucion['colorfontzona'];
$row2[] = array('data' => $cant_metafisica_planif);
$row2[] = array('data' => $cant_metafisica_ej);
$row2[] = array('data' => $porczonacritica1,);
$row2[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona, 'id' => 'metafisica-inversion-form',);
$rows2[] = $row2;
//beneficiarios
$muestra_beneficiarios = variable_get('proyectos_operativos_muestra_beneficiario', TRUE);
if ($muestra_beneficiarios) {
$header3 = array();
$header3[] = array('data' => t('Beneficiario'));
$rows3 = array();
foreach ($node->field_proyecto_beneficiario as $id => $beneficiarios) {
foreach ($consultaseguimientoactual['seguimientos_beneficiarios'] as $seg_benef) {
if ($id == $seg_benef['posicion_beneficiario']) {
$cantbeneficiario_mes = isset($seg_benef['cant_beneficiarios_mes'])? $seg_benef['cant_beneficiarios_mes']:0;
break;
}
}
$row3 = array();
$row3[] = array('data' => $beneficiarios['value']);
$row3[] = array('data' => $cantbeneficiario_mes);
$rows3[] = $row3;
}
}
$output .= '