source: sipes/0.3-modules/proyectos_operativos_seguimiento/includes/proyecto/seguimiento_proyecto.pages.inc~ @ 669d26e

stable
Last change on this file since 669d26e was 669d26e, checked in by Sipes Apn <root@…>, 7 años ago

se realizaron las correciones relacionadas al contador de fechas

  • Propiedad mode establecida a 100755
File size: 24.4 KB
Línea 
1<?php
2  /**
3  * Sistema Automatizado para la Planificación Estratégico-Situacional en la Administración Pública Venezolana
4  * @file proyecto_operativo_seguimiento.module
5  * Drupal part Module to code proyectos operativos module
6  * Copyright 2012 Sistema Automatizado para la Planificación Estratégico-Situacional en la Administración Pública Venezolana (CENDITEL)
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
21  *
22  * @author CENDITEL Merida - Ing. Diego Uzcategui
23  * @date 2013-02-07 // (anno-mes-dia)
24  * Modificado
25  * @author CENDITEL Merida - Msc. Juan Vizcarrondo
26  * @date 2013-11-19 // (anno-mes-dia)
27  * Correccion de meses y formato numerico
28  * @version 0.1
29  *
30  */
31
32/**
33 * Pagina que muestra los seguimientos de todos los meses de una ae (cuadro resumen de seguimientos)
34 */
35function seguimiento_proyecto_page($node) {
36 
37  drupal_set_title(t('Seguimiento y Control de Proyecto Operativo'));
38  $mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($node);
39  if (_proyecto_seguimiento_mes_mover_estado_access($node, $mes_fase_seg, $message = true));
40
41  $output = '';
42  $output .= '<br>';
43
44  $output .= _mostrar_datos_proyecto($node);
45  $output .= _mostrar_indicadores_metafisica_seg_proyecto($node);
46  $output .= _mostrar_indicadores_financieros_seg_proyecto($node);
47  if (variable_get('proyectos_operativos_muestra_beneficiario', TRUE)) { 
48    $output .= _mostrar_beneficiarios_seg_proyecto($node);
49  }
50  $output .= _mostrarleyendazonacritica();
51  return $output;
52}
53
54/**
55 * Pagina que carga los datos generales de una accion especifica (datos del proyecto y datos de la accion)
56 */
57function _mostrar_datos_proyecto($node) {
58  $mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($node);
59  $seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $mes_fase_seg);
60  $state_name = t("Por ingresar");
61  if (workflow_get_state_name($seguimiento_proyecto['segmes']['estado'])) {
62    $state_name = workflow_get_state_name($seguimiento_proyecto['segmes']['estado']);
63  }
64//print_r($seguimiento_proyecto);
65
66  $output = '';
67  $opciones = array(t('NO'), t('SI'));
68  $node_type = content_types('proyectos_operativos');
69  $fields = $node_type['fields'];
70  $output .= '<fieldset><legend>' . t('Datos del Proyecto Operativo') . '</legend>';
71  $output .= '<b>' . $fields['field_proyecto_codigo']['widget']['label'] . ':</b> '.$node->field_proyecto_codigo[0]['value'].'<br>';
72  $output .= '<b>' . t('Nombre del Proyecto') . ':</b> '.$node->titulo_asignado.'<br>';
73  $acumulativo = $opciones[$node->es_acumulativo] ? $opciones[$node->es_acumulativo] : 'N/D';
74  $output .= '<b>' . t('Es acumulativo: ') . '</b> '. $acumulativo . '<br>';
75  $output .= '<b>' . t('Estado del Seguimiento: ') . '</b>' . $state_name . '<br>';
76  $id_field1 = 'field_proyecto_fecha_i';
77  $fecha = explode(' ', $node->{$id_field1}[0]['value']);
78  $fecha = explode('-', $fecha[0]);
79  $output .= '<b>' . $fields[$id_field1]['widget']['label'] . ':</b> '.$fecha[2] . '/' . $fecha[1] . '/' . $fecha[0].'<br>';
80  $id_field1 = 'field_proyecto_fecha_f';
81  $fecha = explode(' ', $node->{$id_field1}[0]['value']);
82  $fecha = explode('-', $fecha[0]);
83  $output .= '<b>' . $fields[$id_field1]['widget']['label'] . ':</b> '.$fecha[2] . '/' . $fecha[1] . '/' . $fecha[0].'<br>';
84  if (variable_get('proyectos_operativos_muestra_mcti', TRUE)) {
85    $term = taxonomy_get_term($node->field_proyecto_mcti[0]['value']);
86    $output .= '<b>' . $fields['field_proyecto_mcti']['widget']['label'] . ':</b> '.$term->name.'<br>';
87  }
88  if (variable_get('proyectos_operativos_muestra_pndes', TRUE)) {
89    //$term = taxonomy_get_term($node->field_proyecto_pndes[0]['value']);
90    $PP = array_reverse(taxonomy_get_parents_all($node->field_proyecto_pndes[0]['value']));
91    //$PP = explode('.', $term->name);
92    if (isset($PP[0])) {
93      $output .= '<b>' . t('Objetivo Histórico') . ':</b> '. $PP[0]->name . ' - ' . $PP[0]->description . '<br>';
94    }
95    if (isset($PP[1])) {
96      $output .= '<b>' . t('Objetivo Nacional') . ':</b> '. $PP[1]->name . ' - ' . $PP[1]->description . '<br>';
97    }
98    if (isset($PP[2])) {
99      $output .= '<b>' . t('Objetivo Estratégico') . ':</b> '. $PP[2]->name . ' - ' . $PP[2]->description . '<br>';
100    }
101    if (isset($PP[3])) {
102      $output .= '<b>' . t('Objetivo General') . ':</b> '. $PP[3]->name . ' - ' . $PP[3]->description . '<br>';
103    }
104  }
105  $output .= '</fieldset>';
106 
107  return $output;
108}
109
110/**
111 * Pagina que carga la tabla de indicadores de meta física del proyecto
112 * revisado 13 marzo 2013
113 */
114function _mostrar_indicadores_metafisica_seg_proyecto($node) {
115  $output = '';
116  $years = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0);
117  $mess = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0) - 1;
118  $meses = json_decode(MESES);
119  $format_number = array(
120    'decimals' => variable_get('proyectos_operativos_number_decimals', 0),
121    'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','),
122    'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'),
123  );
124  //tabla de indicadores financieros de la accion especific
125  $seg_metafisica_todos = _seguimiento_metafisica_todosmes_proyecto_load($node);
126  $tablas = array();
127 
128  $header = array();
129  $header[] = array('data' => t('Mes'));
130  $header[] = array('data' => t('Planificado'));
131  $header[] = array('data' => t('Ejecutado'));
132  $header[] = array('data' => t('% de Logro'));
133  $header[] = array('data' => t('Estatus de Ejecución'));
134  $header[] = array('data' => t('Información Complementaria'));
135  $header[] = array('data' => t('Opciones Disponibles'),);
136   
137  $rows = array();
138  $acumulativo = TRUE;
139  for($i=0; $i<12; $i++) {
140    $mesi = $i + 1;
141    //calcular variacion por reformulacion
142    $variacion_planificado_mes = _seguimiento_mesactual_metafisica_proyecto_reformulaciones_load($node, $i);
143    $planificadoMes = $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$i]['planificadoMes'] + $variacion_planificado_mes;
144    $Ejecutado = $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$mesi]['ejecutadoMes'];
145    $infocomplementaria_metafisica = $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$mesi]['infocomplementaria_metafisica'];
146    $estatus_ejecucion = _calcularzonacritica($planificadoMes, $Ejecutado);
147    $porczonacritica = $estatus_ejecucion['porczonacritica'];
148    $textozona = $estatus_ejecucion['textozona'];
149    $colorzona = $estatus_ejecucion['colorzona'];
150    $colorfontzona = $estatus_ejecucion['colorfontzona'];
151   
152    $row = array();
153    $row[] = array('data' => $meses[$i],);
154    //si el mes esta dentro del periodo de duracion de la accion especifica
155    if(_mes_dentro_de_duracion_proyecto($node, $i)){
156      $row[] = array('data' => number_format($planificadoMes, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
157      $row[] = array('data' => number_format($Ejecutado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
158      $row[] = array('data' => $porczonacritica,);
159      $row[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona);
160      $row[] = array('data' => $infocomplementaria_metafisica,);
161
162      $seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $mesi);
163      if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $mesi)){
164
165        $title = ' ' . t('Agregar');
166        if ($seguimiento_proyecto['segmes']['estado']) {
167          $title = ' ' . t('Modificar');
168        }
169
170        $links = array();
171        $links[] = '<b>'.l( $title, 'proyectosop/' . $node->nid . '/seguimiento/proyecto/' . $mesi . '/edit/comentario_metafisica').'</b>';
172        $row[] = array('data' => theme('item_list', $links),);
173      }else{
174        $row[] = array('data' => '',);
175      }
176    }else{
177      $row[] = array('data' => '-',);//planificado
178      $row[] = array('data' => '-',);//ejecutado
179      $row[] = array('data' => '-',);//porcentaje
180      $row[] = array('data' => '-',);//estatus de ejecucion
181      $row[] = array('data' => '-',);//info complementaria
182      $row[] = array('data' => '-',);
183    }
184    $rows[] = $row;
185  }
186  $acumuladoPlanificado = $seg_metafisica_todos['acum']['acumuladoPlanificado'];
187  $AcumuladoEjecutado = $seg_metafisica_todos['acum']['acumuladoEjecutado'];
188  $row = array();
189
190  if ($node->es_acumulativo) {
191    $row[] = array('data' => t('Acumulado'),);
192    $row[] = array('data' => number_format($acumuladoPlanificado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
193    $row[] = array('data' => number_format($AcumuladoEjecutado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total ejecutado
194    $row[] = array('data' => '', 'colspan' => 4);
195  }
196  $rows[] = $row;
197  $tablas[]= theme('table', $header, $rows);
198 
199       
200  if (count($tablas)) {
201   
202    $output .= '<fieldset><legend>Indicadores de la Meta Física del Proyecto</legend>';
203   
204    $output .= '<b>Descripción del Bien y Servicio:</b> '.$node->field_proyecto_descripcion_bien[0]['value'].'<br>';
205    $term = taxonomy_get_term($node->field_proyecto_unidadm[0]['value']);
206    $output .= '<b>Unidad de Medida:</b> '.$term->name.'<br><br>';
207   
208    $output .= implode('', $tablas).'</fieldset>';
209  }
210 
211  return $output;
212}
213
214
215/**
216 * Pagina que carga la tabla de indicadores de meta física de la accion especifica
217 */
218function _mostrar_indicadores_financieros_seg_proyecto($node) {
219  $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
220  $seguimiento_todos_meses_financiero = _seguimiento_financiero_todosmes_proyecto_load($node);
221  $years = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0);
222  $meses = json_decode(MESES);
223  $format_number = array(
224    'decimals' => variable_get('proyectos_operativos_number_decimals', 0),
225    'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','),
226    'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'),
227  ); 
228  //tabla de indicadores financieros del proyecto
229  $tablas = array();
230 
231  $header = array();
232  $header[] = array('data' => t('Mes'));
233  $header[] = array('data' => t('Asignado'));
234  $header[] = array('data' => t('Comprometido'));
235  $header[] = array('data' => t('Causado'));
236  $header[] = array('data' => t('Pagado'));
237  $header[] = array('data' => t('% de Inversión'));
238  $header[] = array('data' => t('Estatus de la Inversión'));
239  $header[] = array('data' => t('Información Complementaria'));
240 
241 
242  $rows = array();
243  for($mes=0; $mes<12; $mes++){
244    $mesi = $mes +1;
245    //calcular variación por reformulación
246    $variacion_total_ref_asignado = _seguimiento_mesactual_total_proyecto_reformulaciones_load($node, $mes);
247   
248    $asignadoMes = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mes]['asignadoMes'] + $variacion_total_ref_asignado;
249    $totalComprometido = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['comprometidoMes'];
250    $totalCausado = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['causadoMes'];
251    $totalPagado = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['pagadoMes'];
252    $infocomplementaria_financiera = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['infocomplementaria_metafinanciera'];
253    $estatus_inversion = _calcularzonacritica($asignadoMes, $totalCausado);
254    $porczonacritica = $estatus_inversion['porczonacritica'];
255    $textozona = $estatus_inversion['textozona'];
256    $colorzona = $estatus_inversion['colorzona'];
257    $colorfontzona = $estatus_inversion['colorfontzona'];
258           
259    $row = array();
260    $row[] = array('data' => $meses[$mes],);
261    //si el mes esta dentro del periodo de duracion del proyecto
262    if(_mes_dentro_de_duracion_proyecto($node, $mes)){
263      $row[] = array('data' => number_format($asignadoMes, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
264      $row[] = array('data' => number_format($totalComprometido, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
265      $row[] = array('data' => number_format($totalCausado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
266      $row[] = array('data' => number_format($totalPagado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
267      $row[] = array('data' => $porczonacritica,);
268      $row[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona);
269      $row[] = array('data' => $infocomplementaria_financiera,);
270    }else{
271      $row[] = array('data' => '-',);
272      $row[] = array('data' => '-',);
273      $row[] = array('data' => '-',);
274      $row[] = array('data' => '-',);
275      $row[] = array('data' => '-',);
276      $row[] = array('data' => '-',);
277      $row[] = array('data' => '-',);
278
279    }
280    $rows[] = $row;
281  }
282
283  $acumuladoAsignado = $seguimiento_todos_meses_financiero['acum']['acumuladoAsignado'];
284  $AcumuladoTotalComprometido = $seguimiento_todos_meses_financiero['acum']['acumuladoComprometido'];
285  $AcumuladoTotalCausado = $seguimiento_todos_meses_financiero['acum']['acumuladoCausado'];
286  $AcumuladoTotalPagado = $seguimiento_todos_meses_financiero['acum']['acumuladoPagado'];
287  $row = array();
288  if ($node->es_acumulativo) {
289    $row[] = array('data' => t('Acumulado'),);
290    $row[] = array('data' => number_format($acumuladoAsignado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
291    $row[] = array('data' => number_format($AcumuladoTotalComprometido, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total comprometido
292    $row[] = array('data' => number_format($AcumuladoTotalCausado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total causado
293    $row[] = array('data' => number_format($AcumuladoTotalPagado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total pagado
294    $row[] = array('data' => '', 'colspan' => 4);
295  }
296  $rows[] = $row;
297  $tablas[]= theme('table', $header, $rows);
298         
299  if (count($tablas)) {
300    $output .= '<fieldset><legend>Indicadores Financieros del Proyecto</legend>' . implode('', $tablas);
301    $output .= '<br><b>Nota</b>: Los valores de \'Comprometido\', \'Causado\' y \'Pagado\', corresponden al total de los seguimiento de las acciones específicas. Si desea modificar estos valores para algun mes, debe modificar los seguimientos de las acciones específicas para ese mes.';
302    $output .= '</fieldset>';
303  }
304 
305  return $output;
306}
307
308
309/**
310 * Pagina que carga la tabla de seguimiento de beneficiarios
311 */
312function _mostrar_beneficiarios_seg_proyecto($node) {
313 
314  $seguimiento_todos_meses_beneficiario = _seguimiento_beneficiario_todosmes_proyecto_load($node);
315  $format_number = array(
316    'decimals' => variable_get('proyectos_operativos_number_decimals', 0),
317    'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','),
318    'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'),
319  );
320  //tabla de indicadores financieros del proyecto
321  $tablas = array();
322 
323  $header = array();
324  $header[] = array('data' => t('Beneficiario'));
325  $header[] = array('data' => t('ENE'));
326  $header[] = array('data' => t('FEB'));
327  $header[] = array('data' => t('MAR'));
328  $header[] = array('data' => t('ABR'));
329  $header[] = array('data' => t('MAY'));
330  $header[] = array('data' => t('JUN'));
331  $header[] = array('data' => t('JUL'));
332  $header[] = array('data' => t('AGO'));
333  $header[] = array('data' => t('SEP'));
334  $header[] = array('data' => t('OCT'));
335  $header[] = array('data' => t('NOV'));
336  $header[] = array('data' => t('DIC'));
337  $header[] = array('data' => t('TOTAL'),);   
338  $rows = array();
339  foreach($seguimiento_todos_meses_beneficiario as $seg_benef){
340    $row = array();
341    $row[] = array('data' => $seg_benef['nombre'],);
342    for($mes=0; $mes<12; $mes++){
343      if(_mes_dentro_de_duracion_proyecto($node, $mes)){
344        $row[] = array('data' => number_format($seg_benef['cant_meses'][$mes], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
345      }else{
346        $row[] = array('data' => '-',);
347      }
348    }
349    $row[] = array('data' => number_format($seg_benef['total_benef'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
350    $rows[] = $row;
351  }
352
353  $tablas[]= theme('table', $header, $rows);
354         
355  if (count($tablas)) {
356    $output .= '<fieldset><legend>' . t('Beneficiarios del Proyecto (Durante la Ejecución)') . '</legend>' . implode('', $tablas);
357    $output .= '</fieldset>';
358  }
359 
360  return $output;
361}
362
363/**
364 * Pagina que muestra la lsita de los seguimientos de las acciones especificas del proyecto
365 */
366function seguimiento_proyecto_y_aes_lista_page($node) {
367  $mes_fase_seg = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0);
368  drupal_set_title(t('Seguimiento y Control del Proyecto y sus Acciones Específicas'));
369 /*
370  $output = '';
371  $output .= '<br>';
372 
373  //acciones especificas
374  $output .= '<h4>' . t('Acciones Específicas') . '</h4>';
375  $header = array();
376  $header[] = array('data' => t('Nombre de la Acción Específica'));
377  $header[] = array('data' => t('Enlace'));
378 
379  $rows = array();
380 
381  foreach($node->field_proyecto_accion_esp as $accionEspecifica) {//recorrido por todas las acciones especificas
382    $accion_esp_load = node_load($accionEspecifica['nid']);
383    if ($accion_esp_load && $accion_esp_load->type == 'accion_especifica') {//accion especifica cargada
384      $row = array();
385      $links = array();
386      $row[] = array('data' => $accion_esp_load->titulo_asignado,);
387      $links[] = '<b>'.l(t('Seguimiento de la AE'), 'proyectosop/' . $node->nid . '/seguimiento/ae/' . $accion_esp_load->nid . '/view') . '</b>';
388      $row[] = array('data' => theme('item_list', $links),);
389      $rows[] = $row;
390    }
391  }
392 
393  $output .= theme('table', $header, $rows);
394 
395  //proyecto
396  $output .= '<h4>' . t('Proyecto Operativo') . '</h4>';
397  $header = array();
398  $header[] = array('data' => t('Nombre del Proyecto'));
399  $header[] = array('data' => t('Enlace'));
400 
401  $rows = array();
402 
403  $row = array();
404  $links = array();
405  $row[] = array('data' => $node->titulo_asignado,);
406  $links[] = '<b>'.l(t('Seguimiento del Proyecto'), 'proyectosop/' . $node->nid . '/seguimiento/proyecto').'</b>';
407  $row[] = array('data' => theme('item_list', $links),);
408  $rows[] = $row;
409 
410  $output .= theme('table', $header, $rows);
411*/
412
413  //$nodo_proyecto = node_load($proyecto->nid);
414  if (_proyectooperativo_esta_aprobado($node)) {
415    $output .= '<br>';
416    if (_periodo_de_seguimiento_proyecto_y_aes_esta_activo($node)) {
417      if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $mes)) {
418        $output .= t('Estimado(a) Usuario(a), para ingresar el <b>Seguimiento del Proyecto Operativo</b> debe <i>ingresar primero</i> los <b>Seguimiento de las Acciones Específicas</b> del mismo, los cuales se muestran a continuación.<br>');
419       $output .= '<br>';
420      }
421    }
422    $transiciones_dispo = _obtener_transiciones_disponibles($form['#node'], $form['#mes']);
423
424    $seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $mes_fase_seg);
425    $state_name = t("Por ingresar");
426    if (workflow_get_state_name($seguimiento_proyecto['segmes']['estado'])) {
427      $state_name = workflow_get_state_name($seguimiento_proyecto['segmes']['estado']);
428    }
429    $output .= '<h4>' . t('Estado del Seguimiento: ') . $state_name . '</h4><hr>';
430    $meses = json_decode(MESES);
431    $cnt = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0) + ($mes_fase_seg);
432    $mes_actual = date('n') -1;
433    //proyectosop/%proyectosop/seguimiento/proyecto_aes
434    if (($mes_fase_seg -1)  > $mes_actual) {
435      $output = t('No se puede realizar el seguimiento porque el mes de @mesac no se encuentra disponible, El proyecto estara disponible a partir de @mes.', array('@mesac' => $meses[$mes_actual], '@mes' => $meses[$mes_fase_seg]));
436      $output .= '<br>';
437      return '<br><div class="messages warning">' . $output . '</div>';
438    }
439    else {
440      $output .= '<div style="background: #eee; padding: 10px; margin: -10px;"><h4><b>' . t('Acciones Especificas:', array('@mes' => $meses[$i])) . '</b>';
441      foreach($node->field_proyecto_accion_esp as $accion) {
442        $k++;
443        $accion_nid = (object) $accion;
444        $accion = node_load($accion_nid->nid);
445        $output .= "<h3> $k-) " . $accion->field_accion_titulo[0]['value'] . "</h3>";
446        $output .= "<ul>";
447        $cnt = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0) + ($mes_fase_seg);
448        for ($i=$mes_fase_seg; $i<=$cnt; $i++) {
449          if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $i)) {
450            $transiciones = _obtener_transiciones_disponibles($accion, $i);
451            $title = ' Modificar';
452            if (!_proyecto_seguimiento_mes_mover_estado_access($accion, $i)) {
453              if (!count($transiciones['transic']) && $transiciones['estado_actual']<0) {
454                $title =  ' Agregar';
455                $sn++;
456              }
457            }
458            $enlace_fase_seg = '<b>' . l(t('Fase de Seguimiento del mes de @mes', array('@mes' => $meses[$i -1])), 'proyectosop/' . $node->nid. "/seguimiento/ae/$accion_nid->nid/$i/edit") . '</b>';
459            $output .= '<li>' . t("$title la ") . ' ' . $enlace_fase_seg . '</li>';
460          }
461          else {
462/*
463if (!_proyecto_operativo_seguimiento_modificar_mes_access($node, $i)) {
464            $enlace_fase_seg = '<b>'.l(t('Fase de Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/ae/$accion_nid->nid/view") . '</b>';
465            $output .= '<li>'  . t("Consultar el resumen de la ") . ' ' . $enlace_fase_seg . '</li>';
466         
467}
468*/
469          }
470        }
471        $output .= '</ul>';
472       
473       if (!_proyecto_operativo_seguimiento_modificar_mes_access($node, $i)) {
474          $enlace_fase_seg = '<b>'.l(t('Fase de Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/ae/$accion_nid->nid/view") . '</b>';
475          $output .= t("Consultar el resumen de la ") . ' ' . $enlace_fase_seg . '<br>';
476        }
477
478      }
479      $output .= '<br><b>' . l(t('Consultar el Resumen General de las Acciones Especificas', array('@mes' => $meses[$i])), 'proyectosop/' . $node->nid. "/seguimiento/ae") . '</b></div>';
480
481      $output .= '<h4>' . t('Proyecto:') . '</h4>';
482      $output .= '<h3>' . $node->field_proyecto_titulo[0]['value'] . '</h3>';
483      $output .= t("Consultar ") . '<b>' . l(t('el resumen general del proyecto y reportar el seguimiento.'), 'proyectosop/' . $node->nid. "/seguimiento/proyecto") . '</b>';
484      if (_proyecto_seguimiento_mes_mover_estado_access($node, $mes_fase_seg, true)) {
485        $output .= '<br><b>'.l(t('Enviar el Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/workflow/send") . '.</b> (' . t("Haga Click Para reportar el seguimiento del proyecto") . ')<br>';
486      }
487      $output .= '<ul>';
488      $cnt = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0) + ($mes_fase_seg);
489      for ($i=$mes_fase_seg; $i<=$cnt; $i++) {
490        if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $i)) {
491          if ($transiciones_dispo = _obtener_transiciones_disponibles_proyecto($node, $i)) {
492            $title = t(' Modificar');
493            if (!count($transiciones_dispo['transic'])  && $transiciones_dispo['estado_actual']<0) {
494               $title = t(' Agregar');
495            }
496             $output .= '<li>'. $title . '<b>' . l(t(" el Seguimiento y Control de Proyecto Operativo de @mes", array('@mes' => $meses[$i-1])), 'proyectosop/' . $node->nid. "/seguimiento/proyecto/$i/edit/full") . '</b></li>';
497          }
498        }
499      }
500      $output .= '</ul>';
501
502    }
503  }
504
505  return $output;
506}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.