source: sipes/0.3-modules/proyectos_operativos_seguimiento/includes/proyecto/seguimiento_proyecto.pages.inc @ beba07f

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

se realizo correciones de acceso

  • Propiedad mode establecida a 100755
File size: 25.5 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
62//print_r($seguimiento_proyecto);
63
64  $output = '';
65  $opciones = array(t('NO'), t('SI'));
66  $node_type = content_types('proyectos_operativos');
67  $fields = $node_type['fields'];
68  $output .= '<fieldset><legend>' . t('Datos del Proyecto Operativo') . '</legend>';
69  $output .= '<b>' . $fields['field_proyecto_codigo']['widget']['label'] . ':</b> '.$node->field_proyecto_codigo[0]['value'].'<br>';
70  $output .= '<b>' . t('Nombre del Proyecto') . ':</b> '.$node->titulo_asignado.'<br>';
71  $acumulativo = $opciones[$node->es_acumulativo] ? $opciones[$node->es_acumulativo] : 'N/D';
72  $output .= '<b>' . t('Es acumulativo: ') . '</b> '. $acumulativo . '<br>';
73
74  if (workflow_get_state_name($seguimiento_proyecto['segmes']['estado'])) {
75    $state_name = workflow_get_state_name($seguimiento_proyecto['segmes']['estado']);
76    $output .= '<b>' . t('Estado del Seguimiento: ') . '</b>' . $state_name . '<br>';
77  }
78
79  $id_field1 = 'field_proyecto_fecha_i';
80  $fecha = explode(' ', $node->{$id_field1}[0]['value']);
81  $fecha = explode('-', $fecha[0]);
82  $output .= '<b>' . $fields[$id_field1]['widget']['label'] . ':</b> '.$fecha[2] . '/' . $fecha[1] . '/' . $fecha[0].'<br>';
83  $id_field1 = 'field_proyecto_fecha_f';
84  $fecha = explode(' ', $node->{$id_field1}[0]['value']);
85  $fecha = explode('-', $fecha[0]);
86  $output .= '<b>' . $fields[$id_field1]['widget']['label'] . ':</b> '.$fecha[2] . '/' . $fecha[1] . '/' . $fecha[0].'<br>';
87  if (variable_get('proyectos_operativos_muestra_mcti', TRUE)) {
88    $term = taxonomy_get_term($node->field_proyecto_mcti[0]['value']);
89    $output .= '<b>' . $fields['field_proyecto_mcti']['widget']['label'] . ':</b> '.$term->name.'<br>';
90  }
91  if (variable_get('proyectos_operativos_muestra_pndes', TRUE)) {
92    //$term = taxonomy_get_term($node->field_proyecto_pndes[0]['value']);
93    $PP = array_reverse(taxonomy_get_parents_all($node->field_proyecto_pndes[0]['value']));
94    //$PP = explode('.', $term->name);
95    if (isset($PP[0])) {
96      $output .= '<b>' . t('Objetivo Histórico') . ':</b> '. $PP[0]->name . ' - ' . $PP[0]->description . '<br>';
97    }
98    if (isset($PP[1])) {
99      $output .= '<b>' . t('Objetivo Nacional') . ':</b> '. $PP[1]->name . ' - ' . $PP[1]->description . '<br>';
100    }
101    if (isset($PP[2])) {
102      $output .= '<b>' . t('Objetivo Estratégico') . ':</b> '. $PP[2]->name . ' - ' . $PP[2]->description . '<br>';
103    }
104    if (isset($PP[3])) {
105      $output .= '<b>' . t('Objetivo General') . ':</b> '. $PP[3]->name . ' - ' . $PP[3]->description . '<br>';
106    }
107  }
108  $output .= '</fieldset>';
109 
110  return $output;
111}
112
113/**
114 * Pagina que carga la tabla de indicadores de meta física del proyecto
115 * revisado 13 marzo 2013
116 */
117function _mostrar_indicadores_metafisica_seg_proyecto($node) {
118  $output = '';
119  $years = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0);
120  $mess = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0) - 1;
121  $meses = json_decode(MESES);
122  $format_number = array(
123    'decimals' => variable_get('proyectos_operativos_number_decimals', 0),
124    'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','),
125    'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'),
126  );
127  //tabla de indicadores financieros de la accion especific
128  $seg_metafisica_todos = _seguimiento_metafisica_todosmes_proyecto_load($node);
129  $tablas = array();
130
131  $header = array();
132  $header[] = array('data' => t('Mes'));
133  $header[] = array('data' => t('Planificado'));
134  $header[] = array('data' => t('Ejecutado'));
135  $header[] = array('data' => t('% de Logro'));
136  $header[] = array('data' => t('Estatus de Ejecución'));
137  $header[] = array('data' => t('Información Complementaria'));
138  $header[] = array('data' => t('Opciones Disponibles'),);
139   
140  $rows = array();
141  $acumulativo = TRUE;
142  for($i=0; $i<12; $i++) {
143    $mesi = $i+1;
144    //calcular variacion por reformulacion
145    $variacion_planificado_mes = _seguimiento_mesactual_metafisica_proyecto_reformulaciones_load($node, $i);
146
147    $planificadoMes = $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$i]['planificadoMes'] + $variacion_planificado_mes;
148
149    //$Ejecutado = $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$mesi]['ejecutadoMes'];
150    $Ejecutado = ($seg_metafisica_todos['seguimiento_metafisica_todosmes'][$mesi]['id_seg']) ? $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$mesi]['ejecutadoMes'] : 'N/A';
151    $infocomplementaria_metafisica = $seg_metafisica_todos['seguimiento_metafisica_todosmes'][$mesi]['infocomplementaria_metafisica'];
152    $estatus_ejecucion = _calcularzonacritica($planificadoMes, $Ejecutado);
153    $porczonacritica = $estatus_ejecucion['porczonacritica'];
154    $textozona = $estatus_ejecucion['textozona'];
155    $colorzona = $estatus_ejecucion['colorzona'];
156    $colorfontzona = $estatus_ejecucion['colorfontzona'];
157   
158    $row = array();
159    $row[] = array('data' => $meses[$i],);
160    //si el mes esta dentro del periodo de duracion de la accion especifica
161    if(_mes_dentro_de_duracion_proyecto($node, $i)){
162      $row[] = array('data' => number_format($planificadoMes, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
163   //   $row[] = array('data' => number_format($Ejecutado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
164      $valor = is_numeric($Ejecutado) ?  number_format($Ejecutado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']) : 'N/A';
165//      $row[] = array('data' => number_format($Ejecutado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
166      $row[] = array('data' => $valor,);
167      $row[] = array('data' => $porczonacritica,);
168      $row[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona);
169      $row[] = array('data' => $infocomplementaria_metafisica,);
170
171      $seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $mesi);
172      if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $mesi)){
173
174        $title = ' ' . t('Agregar');
175        if ($seguimiento_proyecto['segmes']['estado']) {
176          $title = ' ' . t('Modificar');
177        }
178
179        $links = array();
180        $links[] = '<b>'.l( $title, 'proyectosop/' . $node->nid . '/seguimiento/proyecto/' . $mesi . '/edit/comentario_metafisica').'</b>';
181        $row[] = array('data' => theme('item_list', $links),);
182      }else{
183        $row[] = array('data' => '',);
184      }
185    }else{
186      $row[] = array('data' => '-',);//planificado
187      $row[] = array('data' => '-',);//ejecutado
188      $row[] = array('data' => '-',);//porcentaje
189      $row[] = array('data' => '-',);//estatus de ejecucion
190      $row[] = array('data' => '-',);//info complementaria
191      $row[] = array('data' => '-',);
192    }
193    $rows[] = $row;
194  }
195  $acumuladoPlanificado = $seg_metafisica_todos['acum']['acumuladoPlanificado'];
196  $AcumuladoEjecutado = $seg_metafisica_todos['acum']['acumuladoEjecutado'];
197  $row = array();
198
199  if ($node->es_acumulativo) {
200    $row[] = array('data' => t('Acumulado'),);
201    $row[] = array('data' => number_format($acumuladoPlanificado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
202    $row[] = array('data' => number_format($AcumuladoEjecutado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total ejecutado
203    $row[] = array('data' => '', 'colspan' => 4);
204  }
205  $rows[] = $row;
206  $tablas[]= theme('table', $header, $rows);
207 
208       
209  if (count($tablas)) {
210   
211    $output .= '<fieldset><legend>Indicadores de la Meta Física del Proyecto</legend>';
212   
213    $output .= '<b>Descripción del Bien y Servicio:</b> '.$node->field_proyecto_descripcion_bien[0]['value'].'<br>';
214    $term = taxonomy_get_term($node->field_proyecto_unidadm[0]['value']);
215    $output .= '<b>Unidad de Medida:</b> '.$term->name.'<br><br>';
216   
217    $output .= implode('', $tablas).'</fieldset>';
218  }
219 
220  return $output;
221}
222
223
224/**
225 * Pagina que carga la tabla de indicadores de meta física de la accion especifica
226 */
227function _mostrar_indicadores_financieros_seg_proyecto($node) {
228  $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
229  $seguimiento_todos_meses_financiero = _seguimiento_financiero_todosmes_proyecto_load($node);
230
231  $years = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0);
232  $meses = json_decode(MESES);
233  $format_number = array(
234    'decimals' => variable_get('proyectos_operativos_number_decimals', 0),
235    'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','),
236    'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'),
237  ); 
238  //tabla de indicadores financieros del proyecto
239  $tablas = array();
240 
241  $header = array();
242  $header[] = array('data' => t('Mes'));
243  $header[] = array('data' => t('Asignado'));
244  $header[] = array('data' => t('Comprometido'));
245  $header[] = array('data' => t('Causado'));
246  $header[] = array('data' => t('Pagado'));
247  $header[] = array('data' => t('% de Inversión'));
248  $header[] = array('data' => t('Estatus de la Inversión'));
249  $header[] = array('data' => t('Información Complementaria'));
250 
251 
252  $rows = array();
253  for($mes=0; $mes<12; $mes++){
254    $mesi = $mes +1;
255    //calcular variación por reformulación
256    $variacion_total_ref_asignado = _seguimiento_mesactual_total_proyecto_reformulaciones_load($node, $mes);
257   
258    $asignadoMes = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mes]['asignadoMes'] + $variacion_total_ref_asignado;
259    $totalComprometido = ($seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['id_seg']) ? $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['comprometidoMes'] : 'N/A';
260    $totalCausado = ($seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['id_seg']) ? $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['causadoMes'] : 'N/A';
261    $totalPagado = ($seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['id_seg']) ? $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['pagadoMes'] : 'N/A';
262    $infocomplementaria_financiera = $seguimiento_todos_meses_financiero['seguimiento_financiero_todosmes'][$mesi]['infocomplementaria_metafinanciera'];
263    $estatus_inversion = _calcularzonacritica($asignadoMes, $totalCausado);
264    $porczonacritica = $estatus_inversion['porczonacritica'];
265    $textozona = $estatus_inversion['textozona'];
266    $colorzona = $estatus_inversion['colorzona'];
267    $colorfontzona = $estatus_inversion['colorfontzona'];
268           
269    $row = array();
270    $row[] = array('data' => $meses[$mes],);
271    //si el mes esta dentro del periodo de duracion del proyecto
272    if(_mes_dentro_de_duracion_proyecto($node, $mes)){
273      $row[] = array('data' => number_format($asignadoMes, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
274
275
276      $valor = is_numeric($totalComprometido) ?  number_format($totalComprometido, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']) : 'N/A';
277      $row[] = array('data' => $valor,);
278
279      $valor = is_numeric($totalCausado) ?  number_format($totalCausado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']) : 'N/A';
280      $row[] = array('data' => $valor,);
281
282      $valor = is_numeric($totalPagado) ?  number_format($totalPagado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']) : 'N/A';
283      $row[] = array('data' => $valor,);
284
285      $row[] = array('data' => $porczonacritica,);
286      $row[] = array('data' => $textozona, 'style' => 'font-weight: bold;background:' . $colorzona . '; color:' . $colorfontzona);
287      $row[] = array('data' => $infocomplementaria_financiera,);
288    }else{
289      $row[] = array('data' => '-',);
290      $row[] = array('data' => '-',);
291      $row[] = array('data' => '-',);
292      $row[] = array('data' => '-',);
293      $row[] = array('data' => '-',);
294      $row[] = array('data' => '-',);
295      $row[] = array('data' => '-',);
296
297    }
298    $rows[] = $row;
299  }
300
301  $acumuladoAsignado = $seguimiento_todos_meses_financiero['acum']['acumuladoAsignado'];
302  $AcumuladoTotalComprometido = $seguimiento_todos_meses_financiero['acum']['acumuladoComprometido'];
303  $AcumuladoTotalCausado = $seguimiento_todos_meses_financiero['acum']['acumuladoCausado'];
304  $AcumuladoTotalPagado = $seguimiento_todos_meses_financiero['acum']['acumuladoPagado'];
305  $row = array();
306  if ($node->es_acumulativo) {
307    $row[] = array('data' => t('Acumulado'),);
308    $row[] = array('data' => number_format($acumuladoAsignado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
309    $row[] = array('data' => number_format($AcumuladoTotalComprometido, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total comprometido
310    $row[] = array('data' => number_format($AcumuladoTotalCausado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total causado
311    $row[] = array('data' => number_format($AcumuladoTotalPagado, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);//total pagado
312    $row[] = array('data' => '', 'colspan' => 4);
313  }
314  $rows[] = $row;
315  $tablas[]= theme('table', $header, $rows);
316         
317  if (count($tablas)) {
318    $output .= '<fieldset><legend>Indicadores Financieros del Proyecto</legend>' . implode('', $tablas);
319    $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.';
320    $output .= '</fieldset>';
321  }
322 
323  return $output;
324}
325
326
327/**
328 * Pagina que carga la tabla de seguimiento de beneficiarios
329 */
330function _mostrar_beneficiarios_seg_proyecto($node) {
331 
332  $seguimiento_todos_meses_beneficiario = _seguimiento_beneficiario_todosmes_proyecto_load($node);
333  $format_number = array(
334    'decimals' => variable_get('proyectos_operativos_number_decimals', 0),
335    'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','),
336    'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'),
337  );
338  //tabla de indicadores financieros del proyecto
339  $tablas = array();
340 
341  $header = array();
342  $header[] = array('data' => t('Beneficiario'));
343  $header[] = array('data' => t('ENE'));
344  $header[] = array('data' => t('FEB'));
345  $header[] = array('data' => t('MAR'));
346  $header[] = array('data' => t('ABR'));
347  $header[] = array('data' => t('MAY'));
348  $header[] = array('data' => t('JUN'));
349  $header[] = array('data' => t('JUL'));
350  $header[] = array('data' => t('AGO'));
351  $header[] = array('data' => t('SEP'));
352  $header[] = array('data' => t('OCT'));
353  $header[] = array('data' => t('NOV'));
354  $header[] = array('data' => t('DIC'));
355  $header[] = array('data' => t('TOTAL'),);   
356  $rows = array();
357  foreach($seguimiento_todos_meses_beneficiario as $seg_benef){
358    $row = array();
359    $row[] = array('data' => $seg_benef['nombre'],);
360    for($mes = 1; $mes <= 12; $mes++){
361      if(_mes_dentro_de_duracion_proyecto($node, $mes)){
362        $row[] = array('data' => number_format($seg_benef['cant_meses'][$mes], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
363      }else{
364        $row[] = array('data' => '-',);
365      }
366    }
367    $row[] = array('data' => number_format($seg_benef['total_benef'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
368    $rows[] = $row;
369  }
370
371  $tablas[]= theme('table', $header, $rows);
372         
373  if (count($tablas)) {
374    $output .= '<fieldset><legend>' . t('Beneficiarios del Proyecto (Durante la Ejecución)') . '</legend>' . implode('', $tablas);
375    $output .= '</fieldset>';
376  }
377 
378  return $output;
379}
380
381/**
382 * Pagina que muestra la lsita de los seguimientos de las acciones especificas del proyecto
383 */
384function seguimiento_proyecto_y_aes_lista_page($node) {
385  $meses = json_decode(MESES);
386  $mes_fase_seg = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0);
387  drupal_set_title(t('Seguimiento y Control del Proyecto y sus Acciones Específicas'));
388
389  //$nodo_proyecto = node_load($proyecto->nid);
390  if (_proyectooperativo_esta_aprobado($node)) {
391    $output .= '<br>';
392    if (_periodo_de_seguimiento_proyecto_y_aes_esta_activo($node)) {
393      if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $mes)) {
394        $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>');
395       $output .= '<br>';
396      }
397    }
398    $transiciones_dispo = _obtener_transiciones_disponibles($form['#node'], $form['#mes']);
399
400    $seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $mes_fase_seg);
401    $state_name = t("Por ingresar");
402    if (workflow_get_state_name($seguimiento_proyecto['segmes']['estado'])) {
403      $state_name = workflow_get_state_name($seguimiento_proyecto['segmes']['estado']);
404    }
405    $outputMe .= '<p>' . t('Lista del Estado del Seguimiento por Mes: ') . '<br>';
406    $meses = json_decode(MESES);
407
408    for ($i=1; $i<=count($meses); $i++) {
409      if (in_array($i, variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1))) {
410        if (_proyecto_seguimiento_mes_mover_estado_access($node, $i)) {
411           $outputEn = ' <b>' . l(t(' (Enviar el Seguimiento).'), 'proyectosop/' . $node->nid. "/seguimiento/workflow/" . $i) . '</b>';
412        }
413        else {
414          $outputEn = '';
415        }
416        $transiciones_dispo = _obtener_transiciones_disponibles_proyecto($node, $i);
417        $outputMe .= '<li>' . t('@mes (@state). ', array('@mes' => $meses[$i-1], '@state' => $transiciones_dispo['nombre_estado_actual'])) . $outputEn . ' </li>';
418       // $output .= '<p style="font-size: 12px">' . t('Mes @mes (@state): ', array('@mes' => $meses[$i], '@state' => $state_name)) .  '</p>';
419      }
420    }
421     $output .=   '<ul> ' . $outputMe . '</ul>';
422    $mes_actual = date('n');
423
424    //proyectosop/%proyectosop/seguimiento/proyecto_aes
425/*    if (!in_array($mes_actual, variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1) )) {
426      $output = t('No se puede realizar el seguimiento porque el mes de @mesac no se encuentra disponible.', array('@mesac' => $meses[$mes_actual]));
427      $output .= '<br>';
428      return '<br><div class="messages warning">' . $output . '</div>';
429    }
430    else {*/
431      $output .= '<div style="background: #eee; padding: 10px; margin: -10px;"><h4><b>' . t('Acciones Especificas:', array('@mes' => $meses[$i])) . '</b>';
432      foreach($node->field_proyecto_accion_esp as $accion) {
433
434        $k++;
435        $accion_nid = (object) $accion;
436        $accion = node_load($accion_nid->nid);
437        $output .= "<h3> $k-) " . $accion->field_accion_titulo[0]['value'] . "</h3>";
438        $output .= "<ul>";
439        for ($i=1; $i<=count($meses); $i++) {
440           if (in_array($i, variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1) )) {
441             if (_ae_seguimiento_modificar_mes_access($node, $accion, $i)) {
442               $transiciones = _obtener_transiciones_disponibles($accion, $i);
443               $title = ' Modificar';
444               if (!_proyecto_seguimiento_mes_mover_estado_access($node, $i)) {
445                 if ((count($transiciones['transic']) && !$transiciones['estado_actual']) || (!count($transiciones['transic']) && $transiciones['estado_actual'])) {
446                   $title =  ' Agregar';
447                 }
448               }
449               else if (!$exist[$i]) {
450                 $text = t("El envio del seguimiento del proyecto ya se encuentra disponible para el mes de <strong>@mes</strong>", array('@mes' => $meses[$i-1]));
451                 $text .= ' <b>'.l(t('Enviar el Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/workflow/" . $i) . '</b>';
452                 drupal_set_message($text, "warning");
453                 $exist[$i] = true;
454               }
455               $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>';
456               $output .= '<li>' . t("$title la ") . ' ' . $enlace_fase_seg . '</li>';
457            }
458            else if (_proyecto_seguimiento_mes_mover_estado_access($node, $i)) {
459              if (!$exist[$i]) {
460                 $text = t("El envio del seguimiento del proyecto ya se encuentra disponible para el mes de <strong>@mes</strong>", array('@mes' => $meses[$i-1]));
461                 $text .= ' <b>'.l(t('Enviar el Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/workflow/" . $i) . '</b>';
462                 drupal_set_message($text, "warning");
463                 $exist[$i] = true;
464               }
465             }
466          }
467        }
468        $output .= '</ul>';
469       
470       if (!_proyecto_operativo_seguimiento_modificar_mes_access($node, $i)) {
471          $enlace_fase_seg = '<b>'.l(t('Fase de Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/ae/$accion_nid->nid/view") . '</b>';
472          $output .= t("Consultar el resumen de la ") . ' ' . $enlace_fase_seg . '<br>';
473        }
474
475      }
476      $output .= '<br><b>' . l(t('Consultar el Resumen General de las Acciones Especificas', array('@mes' => $meses[$i])), 'proyectosop/' . $node->nid. "/seguimiento/ae") . '</b></div>';
477      $output .= '<h4>' . t('Proyecto:') . '</h4>';
478      $output .= '<h3>' . $node->field_proyecto_titulo[0]['value'] . '</h3>';
479      $output .= t("Consultar ") . '<b>' . l(t('el resumen general del proyecto y reportar el seguimiento.'), 'proyectosop/' . $node->nid. "/seguimiento/proyecto") . '</b>';
480      $exist = false;
481      for ($i=1; $i<=count($meses); $i++) {
482        if (in_array($i, variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1) )) {
483          if (_proyecto_seguimiento_mes_mover_estado_access($node, $i, true)) {
484            if (!$exist) {
485              $exist = true;
486              $output .= '<li><b>'.l(t('Enviar el Seguimiento (Haga Click Para reportar el seguimiento del proyecto).'), 'proyectosop/' . $node->nid. "/seguimiento/workflow/" . $i) . '</li>';
487            }
488          }
489          if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $i)) {
490            if ($transiciones = _obtener_transiciones_disponibles_proyecto($node, $i)) {
491              $title = t(' Modificar');
492              if ((count($transiciones['transic']) && !$transiciones['estado_actual']) || (!count($transiciones['transic']) && $transiciones['estado_actual'])) {
493                 $title = t(' Agregar');
494              }
495               $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>';
496            }
497          }
498        }
499        $output .= '</ul>';
500      }
501    //}
502  }
503
504  return $output;
505}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.