source: sipes/0.3-modules/proyectos_operativos_seguimiento/includes/fase_de_seguimiento_proyecto_y_aes.pages.inc @ 74e53ef

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

se realizo correciones de acceso

  • Propiedad mode establecida a 100755
File size: 11.4 KB
Línea 
1<?php
2
3function _tabla_seg_proyecto_estadomes_page($node, $mes = 0, $message = false) {
4  if (!$mes) {
5    $mes  = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0) ;
6  }
7  $meses = json_decode(MESES);
8  $tablas = array();
9 
10  $header = array();
11  $header[] = array('data' => t('Mes'),'style' => 'text-align:center; width: 200px;',);
12  $header[] = array('data' => t('Estado'), 'colspan' => 2, 'style' => 'text-align:center; width: 120px;',);
13  $header[] = array('data' => t('Opciones Disponibles'),'style' => 'text-align:center',);
14   
15  $rows = array();
16 
17  $row = array();
18  $row[] = array('data' => $meses[$mes],);
19  //calcular el estado
20  $transiciones_dispo = _obtener_transiciones_disponibles_proyecto($node, $mes);
21
22  $agregado = FALSE;
23  $colorSemaforo =  _calcular_color_semaforo_estado_actual($transiciones_dispo['nombre_estado_actual']);
24  if(count($transiciones_dispo['transic'])){
25    $row[] = array('data' => '•', 'style' => 'font-weight: bold;font-size: 35px;text-align:center; color:' . $colorSemaforo);
26    $row[] = array('data' => $transiciones_dispo['nombre_estado_actual'],'text-align:center; width: 200px');
27    $agregado = TRUE; 
28  }
29  else{
30    if ($transiciones_dispo['estado_actual'] < 0) {
31      $name = 'N/D';
32    }
33    else {
34      $name = $transiciones_dispo['nombre_estado_actual'];
35    }
36    if(isset($transiciones_dispo['estado_actual'])&& $transiciones_dispo['estado_actual'] < 0) {
37      $row[] = array('data' => '-','style' => 'text-align:center; width: 113px');
38      $row[] = array('data' => $name,'style' => 'text-align:center; width: 190px');
39    }
40    else{
41      $row[] = array('data' => '•', 'style' => 'width: 95px; font-weight: bold;font-size: 35px; text-align:center; color:' . $colorSemaforo);
42      $row[] = array('data' => $name,'style' => 'text-align:center; width: 190px');
43    }
44  }
45
46  $links = array();
47  //echo print_r($row).'<br>';
48  if(_periodo_de_seguimiento_proyecto_y_aes_esta_activo($node)){
49    if(_mes_habilitado_para_seguimiento($mes)){
50      if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $mes)) {
51        $texto = $agregado ? t('Modificar') : t('Agregar');
52        $links[] = '<b>' . l($texto, 'proyectosop/' . $node->nid . '/seguimiento/proyecto/' . $mes . '/edit', array('query' => array('destination' => $_GET['q']))) . '</b>';
53      }
54    }
55    else {
56      $nota_piepagina = t('Mes no habilitado para seguimiento.');
57    }
58  }
59  else {
60    $nota_piepagina = t('Período para seguimiento no activo.');
61  }
62
63  if ($transiciones_dispo['estado_actual']) {
64    $links[] = '<b>' . l(t('Consultar'), 'proyectosop/' . $node->nid . '/seguimiento/proyecto') . '</b>';
65    if (_proyecto_seguimiento_mes_mover_estado_access($node, $mes, $message)) {
66      $links[] = '<b>' . l(t('Cambiar estado'), 'proyectosop/' . $node->nid . '/seguimiento/proyecto/' . $mes . '/workflow', array('query' => array('destination' => $_GET['q']))) . '</b>';
67    }
68  }
69  if (_proyectooperativo_esta_aprobado($node)) {
70    $links[] = '<b>' . l(t('Ver Historial'), 'proyectosop/' . $node->nid . '/seguimiento/proyecto/' . $mes . '/workflow/historial') . '</b>';
71  }
72  $row[] = array('data' => theme('item_list', $links),); 
73
74  $rows[] = $row;
75 
76  $tablas[]= theme('table', $header, $rows);
77 
78  $output = '';
79
80  if (count($tablas)) {
81    $output .= implode('', $tablas);
82    if(isset($nota_piepagina)){
83      $output .= '<b>' . t('Nota complementaria') . '</b>: ' . $nota_piepagina . '<br>';
84    }
85    $output .= '<br>';
86  }
87  return $output;
88}
89
90function _tabla_seg_aeproyecto_estadomes_page($proyecto, $ae, $mes = 0) {
91  if (!$mes) {
92    $mes  = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0) ;
93  }
94  $meses = json_decode(MESES);
95  $tablas = array();
96  $header = array();
97  $header[] = array('data' => t('Mes'),'style' => 'text-align:center; width: 200px;',);
98  $header[] = array('data' => t('Estado'), 'colspan' => 2, 'style' => 'text-align:center; width: 200px',);
99  $header[] = array('data' => t('Opciones Disponibles'),'style' => 'text-align:center',);
100  $rows = array();
101  $row = array();
102  $links = array();
103  $row[] = array('data' => $meses[$mes -1],);
104  if (_accion_especifica_de_proyecto_seguimiento_consultar_mes_access($ae, $mes)) {
105    //si es accion especifica y si el mes pertenece a la duracion
106    //calcular el estado
107    $consultaseguimientoactual = _seguimiento_mesactual_proyecto_load($proyecto, $mes);
108    $transiciones_dispo = _obtener_transiciones_disponibles($ae, $mes);
109
110    $agregado = FALSE;
111    if(isset($transiciones_dispo['nombre_estado_actual'])) {
112      $colorSemaforo =  variable_get('proyectos_operativos_state_segu_sema_' . $transiciones_dispo['estado_actual'], '#000000');
113      $row[] = array('data' => '•', 'style' => 'width: 100px; font-weight: bold;font-size: 35px;text-align:center; color:' . $colorSemaforo);
114      $row[] = array('data' => $transiciones_dispo['nombre_estado_actual'], 'style' => 'text-align:center; width: 200px');
115      $agregado = TRUE; 
116    }else{
117      $row[] = array('data' => '-', 'style' => 'text-align:center; width: 120px');
118      $row[] = array('data' => t('N/A'),'style' => 'text-align:center;width: 200px');
119    }
120
121    if(_periodo_de_seguimiento_proyecto_y_aes_esta_activo($proyecto)) {
122      if (_mes_habilitado_para_seguimiento($mes)) {
123        if (!variable_get('accion_especifica_de_proyecto_seguimiento_aesep', 0)) {
124          if (_ae_seguimiento_modificar_mes_access($proyecto, $ae, $mes)) {
125            $texto = $agregado? t('Modificar') : t('Agregar');
126            $links[] = '<b>' . l($texto, 'proyectosop/' . $proyecto->nid . '/seguimiento/ae/' . $ae->nid . '/' . $mes . '/edit', array('query' => array('destination' => $_GET['q']))) . '</b>';
127          }
128          else {
129            $links[] = '<b>' . t('No disponible') . '</b>';
130          }
131        }
132        else {
133          if (_ae_seguimiento_modificar_mes_access($proyecto, $ae, $mes) && count($transiciones_dispo['transic'])) {
134            $texto = $agregado? t('Modificar') : t('Agregar');
135            $links[] = '<b>' . l($texto, 'proyectosop/' . $proyecto->nid . '/seguimiento/ae/' . $ae->nid . '/' . $mes . '/edit', array('query' => array('destination' => $_GET['q']))) . '</b>';
136          }
137        }
138      }
139      else {
140        $nota_piepagina = t('Mes no habilitado para seguimiento.');
141      }
142
143      if (variable_get('accion_especifica_de_proyecto_seguimiento_aesep', 0) && $transiciones_dispo['transic']) {
144        $links[] = '<b>' . l(t('Cambiar el estado'), 'proyectosop/' . $proyecto->nid . '/seguimiento/ae/' . $ae->nid . '/partidas/' . $mes . '/workflow', array('query' => array('destination' => $_GET['q']))) . '</b>';
145        $links[] = '<b>' . l(t('Ver Historial'), 'proyectosop/' . $proyecto->nid . '/seguimiento/ae/' . $ae->nid . '/partidas/' . $mes . '/workflow/historial') . '</b>';
146      }
147      $row[] = array('data' => theme('item_list', $links),);
148    }
149
150    if (!_periodo_de_seguimiento_proyecto_y_aes_esta_activo($proyecto)) {
151      $nota_piepagina = t('Período para seguimiento no activo.');
152    }
153    $rows[] = $row;
154    $tablas[]= theme('table', $header, $rows);
155  }
156  $output = '';
157
158  if (count($tablas)) {
159    $output .= implode('', $tablas);
160    if(isset($nota_piepagina)){
161      $output .= '<b>' . t('Nota complementaria') . '</b>: ' . check_plain($nota_piepagina) . '<br>';
162    }
163    $output .= '<br>';
164  }
165  return $output;
166}
167
168/**
169 * Pagina que muestra los seguimientos de todos los meses de una ae (cuadro resumen de seguimientos)
170 * 15 de marzo por Diego Uzcátegui
171 */
172function fase_de_seguimiento_proyecto_y_aes_page($node, $mes=null) {
173  $full = false;
174  $meses = json_decode(MESES);
175  drupal_set_title(t('Fase de Seguimiento de Proyecto Operativo y sus Acciones Específicas (mes de %mes_asignado)', array('%mes_asignado' => $meses[$mes])));
176  if ($mes==null) {
177    $mes = 0;
178    $full = true;
179    drupal_set_title(t('Fase de Seguimiento de Proyecto Operativo y sus Acciones Específicas'));
180  }
181  module_load_include('inc', 'seguimiento_accion_especifica_deproyecto.pages' , 'includes/ae_proyecto');
182
183  drupal_set_message(t('Para consultar el seguimiento de este Proyecto puede ir a') . ' <b>' . l(t('Seguimiento del Proyecto'), 'proyectosop/' . $node->nid . '/seguimiento/proyecto/'));
184
185  $output .= '<br>';
186  if(_periodo_de_seguimiento_proyecto_y_aes_esta_activo($node)) {
187    if(_mes_habilitado_para_seguimiento($mes)) {
188      if (_proyecto_operativo_seguimiento_modificar_mes_access($node, $mes)) {
189       $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>');
190       $output .= '<br>';
191      }
192    }
193  }
194
195  $output .= '<h3>' . t('Seguimiento y Control de las Acciones Específicas del Proyecto') . '</h3>';
196  $output .= '<fieldset><legend>' . t('Seguimiento y Control de las Acciones Específicas del Proyecto') . '</legend>';
197  $disponible = FALSE;
198  $mes_seguimiento = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0);
199  foreach($node->field_proyecto_accion_esp as $key => $accion) {//recorrido por todas las acciones especificas
200    $accion_esp_load = node_load($accion['nid']);
201    if ($accion_esp_load && $accion_esp_load->type == 'accion_especifica') {//accion especifica cargada
202      $k = $key + 1;
203      $output .= "<div class='messages status'>$k-) <b>" . t('Acción Específica') . ': ' . $accion_esp_load->titulo_asignado . '</b></div><br>';
204      for ($i=1; $i<=count($meses); $i++) {
205        if (in_array($i, variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1) )) {
206          if (_tabla_seg_aeproyecto_estadomes_page($node, $accion_esp_load, $i)) {
207            $output .= _tabla_seg_aeproyecto_estadomes_page($node, $accion_esp_load, $i);
208            $disponible = TRUE;
209            if (empty($full)) {
210              break;
211            }
212          }
213        }
214      }
215      $output .= t('Para consultar el seguimiento de todos los meses de duración de esta Acción Específica ir a') . ' <b>' . l(t('Seguimiento de la Acción Específica'), 'proyectosop/' . $node->nid . '/seguimiento/ae/' . $accion_esp_load->nid . '/view') . '.</b>';
216      $output .= '<br>';
217      $output .= '<br>';
218    }
219  }
220  if (!$disponible) {
221    $output = '<br><div class="messages warning">' . t("No se tienen acciones especificas para el mes de @mes que se encuentren disponibles", array("@mes" => $meses[$mes])) . '</div>';
222  }
223  $output .= '</fieldset>';
224
225  return $output;
226}
227
228/**
229 * Obtener mes de seguimiento actual si esta dentro del period o de duración, o retornar primer mes del proyecto
230 * 18 de marzo por Diego Uzcátegui
231 */
232//function primermes_proyecto_page($node) {
233function _obtener_mes_fase_seguimiento_proyecto($node) {
234 
235  $mes_seguimiento_proyecto_y_aes = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0);
236  $mes_seguimiento_proyecto_y_aes = $mes_seguimiento_proyecto_y_aes -1;
237  if(_mes_dentro_de_duracion_proyecto($node, $mes_seguimiento_proyecto_y_aes)){
238      return $mes_seguimiento_proyecto_y_aes;
239  }else{
240    //Proyecto
241    if ($node->type == 'proyectos_operativos'){
242      //consultar mes de inicio del proyecto
243      $fechayhora_inicio = $node->field_proyecto_fecha_i[0]['value'];
244      list($fecha_inicio, $hora_inicio) = split('[ ]', $fechayhora_inicio);
245      list($anno_inicio, $mes_inicio, $dia_inicio) = split('[/.-]', $fecha_inicio);
246      $m_inicio = intval($mes_inicio);
247    }
248
249    $primermes = $m_inicio-1;
250    return $primermes;
251  }
252  return 0;
253}
Nota: Vea TracBrowser para ayuda de uso del navegador del repositorio.