1 | <?php |
---|
2 | |
---|
3 | function _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 | |
---|
86 | function _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 | */ |
---|
165 | function 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) { |
---|
225 | function _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 | } |
---|