source: sipes/0.3-modules/proyectos_operativos_seguimiento/includes/fase_de_seguimiento_proyecto_y_aes.pages.inc @ 5339b65

version-3.0
Last change on this file since 5339b65 was 5339b65, checked in by Sipes Apn <root@…>, 7 años ago

se incremento el contador del view de las acciones

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