Conjunto 02335de en sipes
- Fecha y hora:
- 08/02/2017 09:38:43 (hace 7 años)
- Branches:
- version-3.0
- Children:
- 077ef38
- Parents:
- 13316bf
- Fichero:
-
- 1 editado
Leyenda
- No modificado
- Añadido
- Eliminado
-
0.3-modules/proyectos_operativos_seguimiento/proyecto_operativo_seguimiento.module
r303fae2 r02335de 25 25 * 26 26 */ 27 $meses = array( 28 0 => t('January'), 29 1 => t('February'), 30 2 => t('March'), 31 3 => t('April'), 32 4 => t('May'), 33 5 => t('June'), 34 6 => t('July'), 35 7 => t('August'), 36 8 => t('September'), 37 9 => t('Octuber'), 38 10 => t('November'), 39 11 => t('December'), 40 ); 41 define('MESES', json_encode($meses)); 27 42 28 43 /* … … 42 57 */ 43 58 function proyecto_operativo_seguimiento_menu() { 44 $items = array(); 45 59 $items = array(); 60 $items['proyectosop/seguimiento/workflow_ahah/callback'] = array( 61 'page callback' => 'ahah_proyectosop_seguimiento_workflow_callback', 62 'access callback' => TRUE, 63 'type' => MENU_CALLBACK, 64 'file' => 'includes/proyecto/cambiodeestado_seg_proyecto_paginaconfirmacion.forms.inc', 65 ); 46 66 //----------------------------------------------------------------------------Seguimiento de acciones especÃficas de proyectos operativos 47 $items['proyectosop/% node/seguimiento_proyecto'] = array(67 $items['proyectosop/%proyectosop/seguimiento'] = array( 48 68 'title' => 'Seguimiento', 49 69 'type' => MENU_LOCAL_TASK, 50 'access callback' => '_proyecto _operativo_seguimiento_access',70 'access callback' => '_proyectooperativo_esta_aprobado', 51 71 'access arguments' => array(1), 52 72 'file' => 'includes/proyecto/seguimiento_proyecto.pages.inc', … … 55 75 'weight' => 2, 56 76 ); 57 58 59 $items['node/%node/seguimiento_proyecto'] = array( 77 $items['proyectosop/%proyectosop/seguimiento/view'] = array( 60 78 'title' => 'Seguimiento', 61 'type' => MENU_CALLBACK, 62 'access callback' => '_proyecto_operativo_seguimiento_access', 79 'type' => MENU_DEFAULT_LOCAL_TASK, 80 'weight' => -10 81 ); 82 $items['proyectosop/%proyectosop/seguimiento/workflow/send'] = array( 83 'title' => 'Enviar Seguimiento', 84 'type' => MENU_LOCAL_TASK, 85 'access callback' => '_proyecto_seguimiento_mes_mover_estado_access', 86 'access arguments' => array(1), 87 'page callback' => 'drupal_get_form', 88 'page arguments' => array('cambiodeestado_seg_proyecto_paginaconfirmacion_form', 1), 89 'file' => 'includes/proyecto/cambiodeestado_seg_proyecto_paginaconfirmacion.forms.inc', 90 'weight' => 2, 91 ); 92 /* 93 $items['proyectosop/%proyectosop/seguimiento/proyecto_aes/%'] = array( 94 'title' => 'Proyecto y AE', 95 'type' => MENU_LOCAL_TASK, 96 'access callback' => '_fasedeseguimiento_proyecto_y_ae_access', 97 'access arguments' => array(1), 98 'file' => 'includes/fase_de_seguimiento_proyecto_y_aes.pages.inc', 99 'page callback' => 'fase_de_seguimiento_proyecto_y_aes_page', 100 'page arguments' => array(1), 101 'weight' => 3, 102 ); 103 */ 104 $items['proyectosop/%proyectosop/seguimiento/proyecto'] = array( 105 'title' => 'Proyecto', 106 'type' => MENU_LOCAL_TASK, 107 'access callback' => '_proyectooperativo_esta_aprobado', 63 108 'access arguments' => array(1), 64 109 'file' => 'includes/proyecto/seguimiento_proyecto.pages.inc', … … 67 112 'weight' => 2, 68 113 ); 69 70 $items[' node/%node/seguimiento_proyecto/mes/%messegaepartida/edit'] = array(114 115 $items['proyectosop/%proyectosop/seguimiento/proyecto/%messeg/edit/%'] = array( 71 116 'title' => 'Seguimiento', 72 'type' => MENU_ CALLBACK,117 'type' => MENU_LOCAL_TASK, 73 118 'access callback' => '_proyecto_operativo_seguimiento_modificar_mes_access', 74 'access arguments' => array(1, 4),75 //'file' => 'includes/proyecto/seguimiento_proyecto_datospormes_modificar.forms.inc',119 'access arguments' => array(1, 4), 120 'file' => 'includes/proyecto/seguimiento_proyecto_datospormes_modificar.forms.inc', 76 121 'page callback' => 'drupal_get_form', 77 'page arguments' => array('seguimiento_proyecto_datospormes_modificar_form', 1, 4 ),122 'page arguments' => array('seguimiento_proyecto_datospormes_modificar_form', 1, 4,6), 78 123 'weight' => 2, 79 124 ); 80 125 81 126 //----------------------------------------------------------------------------workflow 82 $items[' node/%node/seguimiento_proyecto/%messegaepartida/workflow/%seg_proyecto_y_aes_wk_menu'] = array(127 $items['proyectosop/%proyectosop/seguimiento/proyecto/%messeg/workflow'] = array( 83 128 'title' => 'Seguimiento', 84 129 'type' => MENU_LOCAL_TASK, 85 130 'access callback' => '_proyecto_seguimiento_mes_mover_estado_access', 86 'access arguments' => array(1, 3,5),131 'access arguments' => array(1, 4), 87 132 'file' => 'includes/proyecto/cambiodeestado_seg_proyecto_paginaconfirmacion.forms.inc', 88 133 'page callback' => 'drupal_get_form', 89 'page arguments' => array('cambiodeestado_seg_proyecto_paginaconfirmacion_form', 1, 3, 5),134 'page arguments' => array('cambiodeestado_seg_proyecto_paginaconfirmacion_form', 1, 4), 90 135 'weight' => 2, 91 136 ); 92 137 93 $items[' node/%node/seguimiento_proyecto/%messegaepartida/workflow/historial'] = array(138 $items['proyectosop/%proyectosop/seguimiento/%messeg/history'] = array( 94 139 'title' => 'Historial Seguimiento', 95 'type' => MENU_ CALLBACK,96 'access callback' => '_proyecto _operativo_seguimiento_access',140 'type' => MENU_LOCAL_TASK, 141 'access callback' => '_proyectooperativo_esta_aprobado', 97 142 'access arguments' => array(1), 98 143 'file' => 'includes/proyecto/historial_cambiodeestado_seg_proyecto.pages.inc', 99 144 'page callback' => 'historial_cambiodeestado_seg_proyecto_page', 100 'page arguments' => array(1, 3),145 'page arguments' => array(1, 4), 101 146 'weight' => 2, 102 147 ); 103 148 // 'proyectosop/%proyectosop/seguimiento/proyecto/%year/%messegaepartida/workflow/historial' 104 149 //----------------------------------------------------------------------------Fase de Seguimiento de proyectos operativos y sus acciones especificas 105 $items['node/%node/fase_de_seguimiento_proyecto_y_aes/mes/%messegaepartida'] = array( 106 'title' => 'Seguimiento', 107 'type' => MENU_CALLBACK, 150 /* 151 $items['proyectosop/%proyectosop/fase_de_seguimiento_proyecto_y_aes'] = array( 152 'title' => 'Proyecto y AE', 153 'type' => MENU_LOCAL_TASK, 108 154 'access callback' => '_fasedeseguimiento_proyecto_y_ae_access', 109 'access arguments' => array(1 ,4),110 //'file' => 'includes/fase_de_seguimiento_proyecto_y_aes.pages.inc',155 'access arguments' => array(1), 156 'file' => 'includes/fase_de_seguimiento_proyecto_y_aes.pages.inc', 111 157 'page callback' => 'fase_de_seguimiento_proyecto_y_aes_page', 112 'page arguments' => array(1 ,4),158 'page arguments' => array(1), 113 159 'weight' => 2, 114 160 ); 115 161 */ 116 162 return $items; 117 163 } … … 123 169 * verificar que el nodo que desea se evaluado sea de tipo 'proyectos_operativos' 124 170 */ 125 function _proyecto_operativo_seguimiento_access($node) { 126 return (_es_tipo_proyectooperativo($node) && _proyectooperativo_esta_aprobado($node)); 171 172 function _proyecto_operativo_seguimiento_access($proyecto = 0) { 173 return _proyectooperativo_esta_aprobado($node); 127 174 } // function _proyecto_operativo_seguimiento_access 128 175 … … 130 177 * verificar que el nodo que desea se evaluado sea de tipo 'proyectos_operativos', que el mes este dentro dentro del periodo de duracion, mes habilitado para seg, y periodo de seguimiento activo 131 178 */ 132 function _proyecto_operativo_seguimiento_modificar_mes_access($node, $mes=0) { 133 134 return ((_es_tipo_proyectooperativo($node))&&(_mes_dentro_de_duracion_proyecto($node, $mes))&&(_mes_habilitado_para_seguimiento($mes))&&(_anno_habilitado_para_seg($node))&&(_periodo_de_seguimiento_proyecto_y_aes_esta_activo())&&_es_usuario_autenticado() &&(!_seg_esta_aprobado_proyecto($node, $mes)) &&(_estado_seg_en_nivel_de_usuario_proyecto($node, $mes)) &&(_es_elmismo_ente_proyecto_y_usuario_proyecto($node)) &&_proyectooperativo_esta_aprobado($node)); 179 function _proyecto_operativo_seguimiento_modificar_mes_access($proyecto = 0, $mes = 0) { 180 global $user; 181 $mes_o = $mes; 182 //esta fuera del mes de seguimiento actual 183 if (!_mes_habilitado_para_seguimiento($mes)) { 184 return FALSE; 185 } 186 187 $mes++;//colocando parametro entre 1 y 12 188 $mes_final = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0); 189 //esta fuera del anho de seguimiento actual 190 if ($proyecto->anhoproyectos_operativos != variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0)) { 191 return FALSE; 192 } 193 $anno = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0); 194 $fecha = explode('-', $proyecto->field_proyecto_fecha_i[0]['value']); 195 $mes_inicio = (int) $fecha[1]; 196 $year_inicio = (int) $fecha[0]; 197 $fecha = explode('-', $proyecto->field_proyecto_fecha_f[0]['value']); 198 $mes_fin = (int) $fecha[1]; 199 $year_fin = (int) $fecha[0]; 200 201 if (($anno == $year_inicio && $mes_inicio > $mes) || ($anno == $year_fin && $mes_fin < $mes) && $mes_final<=$m_fin) { //se establecio la condicion de años como falsa 202 return FALSE; 203 } 204 //se valida el acceso al plan 205 $current_time = time(); 206 $tipo_plan = 'proyecto_y_accionesespecificas_seguimiento'; 207 $fecha = FALSE; 208 $ente = usuario_tiene_ente($user->uid); 209 $ente_planificador = ente_planificador_leer_ente_planificadores($proyecto->field_proyecto_ente[0]['nid']); 210 if ($ente_planificador->nid != $ente->nid && !user_access('admin planificador')) { 211 return FALSE; 212 } 213 $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador); 214 if ($mi_fecha[1] + 86399 > $current_time && $mi_fecha[0] < $current_time) { 215 $fecha = TRUE; 216 } 217 if ($fecha) { 218 if ($ente->nid == $ente_planificador->nid ) { 219 $fecha = TRUE; 220 } 221 elseif (!user_access('admin planificador')) { 222 $fecha = FALSE; 223 } 224 } 225 //si no posee la transición del seguimiento no puede editar 226 $transiciones = _obtener_transiciones_disponibles_proyecto($proyecto, $mes_o); 227 if (!count($transiciones['transic']) && $transiciones['estado_actual']>0 && !user_access('admin planificador')) { 228 return FALSE; 229 } 230 231 $roles_perm = TRUE; 232 if (module_exists('workflow') && $fecha && !user_access('admin planificador')) { 233 $estado = 0; 234 $wid = workflow_get_workflow_for_type('proyectos_operativos'); 235 $states = workflow_get_states($wid); 236 $roles_perm = FALSE; 237 foreach ($states as $sid => $state) { 238 $roles_allow = variable_get('proyectos_operativos_state_s_' . $sid, array()); 239 $roles = array_keys($user->roles); 240 if (count($roles)) { 241 foreach ($roles as $rol) { 242 if ($roles_allow[$rol]) { 243 $roles_perm = TRUE; 244 } 245 elseif ($rol == -1 && $node->uid == $user->uid) { 246 $roles_perm = TRUE; 247 } 248 } 249 } 250 } 251 } 252 /* 253 $move = FALSE; 254 $transition = _proyecto_seguimiento_mes_mover_estado_access($proyecto, $mes); 255 if ($transition) { 256 $move = TRUE; 257 } 258 */ 259 260 return $fecha && $roles_perm; 261 262 /*$transiciones_dispo = _obtener_transiciones_disponibles($proyecto, $mes); 263 $seguimiento = _seguimiento_mesactual_proyecto_load($proyecto, $mes); 264 265 266 $roles_perm = FALSE; 267 $roles_allow = variable_get('proyectos_operativos_state_s_' . $estado, array()); 268 $roles = array_keys($user->roles); 269 if (count($roles)) { 270 foreach($roles as $rol) { 271 if($roles_allow[$rol]) { 272 $roles_perm = TRUE; 273 } 274 elseif ($rol == -1 && $seguimiento['uid'] == $user->uid) { 275 $roles_perm = TRUE; 276 } 277 } 278 } 279 if (!$roles_perm) { 280 return FALSE; 281 } 282 */ 283 284 /* 285 VERIFICAR si es aca donde se debe establecer el permiso para que solo los autores puedan modifciar 286 $transiciones_dispo = _obtener_transiciones_disponibles_proyecto($proyecto, $mes); 287 if (!count($transiciones_dispo['transic'])) { 288 return false; 289 } 290 */ 291 return _proyectooperativo_esta_aprobado($proyecto); 292 /* 293 return ( 294 (_mes_dentro_de_duracion_proyecto($proyecto, $mes))&& 295 (_mes_habilitado_para_seguimiento($mes))&& 296 (_anno_habilitado_para_seg($proyecto))&& 297 (_periodo_de_seguimiento_proyecto_y_aes_esta_activo())&& 298 _es_usuario_autenticado()&& 299 (!_seg_esta_aprobado_proyecto($proyecto, $mes))&& 300 (_estado_seg_en_nivel_de_usuario_proyecto($proyecto, $mes))&& 301 (_es_elmismo_ente_proyecto_y_usuario_proyecto($proyecto))&& 302 _proyectooperativo_esta_aprobado($proyecto)); 303 */ 135 304 } // function _proyecto_operativo_seguimiento_modificar_mes_access 136 305 137 306 /** 138 * acceso a workflow 139 */ 140 function _proyecto_seguimiento_mes_mover_estado_access($node, $mes=0, $estadonuevo=0) { 141 return ((_es_tipo_proyectooperativo($node))&&(_mes_dentro_de_duracion_proyecto($node, $mes))&&(_mes_habilitado_para_seguimiento($mes))&&(_anno_habilitado_para_seg($node))&&(_periodo_de_seguimiento_proyecto_y_aes_esta_activo())&&(_es_usuario_autenticado())&&_permiso_para_realizar_transicion_estado_proyecto($node, $mes, $estadonuevo) &&(_es_elmismo_ente_proyecto_y_usuario_proyecto($node)) &&_proyectooperativo_esta_aprobado($node)); 307 * acceso a workflow accion_especifica_de_proyecto_seguimiento.module 308 */ 309 function _proyecto_seguimiento_mes_mover_estado_access($node, $mes = 0, $message = false) { 310 global $user; 311 $seguimiento = _seguimiento_mesactual_proyecto_load($node, $mes); 312 // si no estan separadas el seguimiento de las AE con los proyectos 313 if (!variable_get('accion_especifica_de_proyecto_seguimiento_aesep', 0)) { 314 //se verifica que se haya ingresado todo el seguimiento de las acciones especificas 315 $cuenta = 0; 316 $count = 0; 317 $acciones_estado = array(); 318 $cnt = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0); 319 //echo $cnt; 320 //print_r($node->field_proyecto_accion_esp); 321 $count_proyect = 0; 322 foreach($node->field_proyecto_accion_esp as $accion) { 323 $accion_load = (object) $accion; 324 $acciones_estado[$accion['nid']] = _seguimiento_mesactual_partida_ae_deproyecto_load($accion_load, $mes); 325 //se busca manejar la cantidad total de acciones disponibles por mes, exluir las restantes 326 $accion_load = node_load($accion['nid']); 327 //obtener la cantidad total de las transiciones disponibles de todas las acciones para todos los meses 328 // $transiciones = array(); 329 for ($i=$mes; $i<=$cnt; $i++) { 330 // $transiciones[] = _seguimiento_mesactual_partida_ae_deproyecto_load($accion_load, $i); 331 332 $mes_restante = $i; 333 if (_accion_especifica_de_proyecto_seguimiento_consultar_mes_access($accion_load, $i)) { 334 if ($transiciones_dispo = _obtener_transiciones_disponibles($accion_load, $i)) { 335 //print_r($transiciones_dispo); 336 $count++; 337 } 338 else { 339 $mes_restante = $i; 340 } 341 if (count($transiciones_dispo['transic'])) { 342 $cuenta++; 343 } 344 } 345 } 346 347 /*if ($seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $i)) { 348 if ($seguimiento_proyecto['segmes']['estado']) { 349 $count_proyecto++; 350 } 351 }*/ 352 353 /* 354 print '<pre>'; 355 print_r($transiciones_dispo); 356 print '</pre>'; 357 */ 358 359 /* if ($acciones_estado[$accion['nid']]['segmes']) { 360 $cuenta++; 361 } 362 */ 363 364 } 365 $countP = 0; 366 $cuentaP = 0; 367 for ($i=$mes; $i<=$cnt; $i++) { 368 if ($transiciones_dispo = _obtener_transiciones_disponibles_proyecto($node, $i)) { 369 if (count($transiciones_dispo['transic']) && $transiciones_dispo['estado_actual']>0) { 370 $cuentaP++; 371 } 372 $countP++; 373 } 374 } 375 if ($countP != $cuentaP || $cuentaP == 0) { 376 return FALSE; 377 } 378 if (($count != $cuenta || $count == 0) && !user_access('admin planificador')) { 379 return FALSE; 380 } 381 elseif ($message) { 382 $text = t("El envio del seguimiento del proyecto ya se encuentra disponible"); 383 $text .= ' <b>'.l(t('Enviar el Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/workflow/send") . '</b>'; 384 drupal_set_message($text, "warning"); 385 } 386 /*if ($count_proyecto != $cnt) { 387 drupal_set_message(t("Para poder realizar el envio del reporte es necesario completar el seguimiento del proyecto en los meses faltantes"), "warning"); 388 return FALSE; 389 }*/ 390 } 391 392 //esta fuera del mes de seguimiento actual 393 if (!_mes_habilitado_para_seguimiento($mes)) { 394 return FALSE; 395 } 396 $mes++;//colocando parametro entre 1 y 12 397 //esta fuera del anho de seguimiento actual 398 $anno = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0); 399 if ($node->anhoproyectos_operativos != $anno) { 400 return FALSE; 401 } 402 $fecha = explode('-', $node->field_proyecto_fecha_i[0]['value']); 403 $mes_inicio = (int) $fecha[1]; 404 $anno_inicio = (int) $fecha[0]; 405 $fecha = explode('-', $node->field_proyecto_fecha_f[0]['value']); 406 $mes_fin = (int) $fecha[1]; 407 $anno_fin = (int) $fecha[0]; 408 //el mes esta fuera del rango del proyecto 409 if (($anno == $anno_inicio && $mes_inicio > $mes) || ($anno == $anno_fin && $mes_fin < $mes)) { 410 return FALSE; 411 } 412 $ente = usuario_tiene_ente($user->uid); 413 $ente_planificador = ente_planificador_leer_ente_planificadores($node->field_proyecto_ente[0]['nid']); 414 /* 415 if (($ente_planificador->nid != $ente->nid)&& !user_access('admin planificador')) { 416 return FALSE; 417 } 418 */ 419 420 $current_time = time(); 421 $tipo_plan = 'proyecto_y_accionesespecificas_seguimiento'; 422 $fecha = FALSE; 423 $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador); 424 if ($mi_fecha[1] + 86399 > $current_time && $mi_fecha[0] < $current_time) { 425 $fecha = TRUE; 426 } 427 if ($fecha) { 428 if (user_access('admin planificador')) { 429 $fecha = TRUE; 430 } 431 elseif ($ente->nid == $ente_planificador->nid && !user_access('admin planificador')) { 432 $fecha = TRUE; 433 } 434 elseif (module_exists('ente_planificador_hierarchical')) { 435 $fathers = _ente_planificador_hierarchical_get_descbyid($ente_planificador->nid, 1); 436 $fecha = isset($fathers[$ente->nid]) ? TRUE : FALSE; 437 } 438 } 439 return $fecha; 440 /* 441 if (module_exists('workflow') && !user_access('admin planificador')) { 442 $estado = 0; 443 if (!$seguimiento) { 444 $states = _proyectos_operativos_reformula_obtiene_estados(); 445 if ($states['wid']) { 446 $estado = _workflow_creation_state($states['wid']); 447 } 448 } 449 else { 450 $estado = $seguimiento['estado']; 451 } 452 453 $roles_perm = TRUE; 454 if (module_exists('workflow') && $fecha && !user_access('admin planificador')) { 455 $estado = 0; 456 $wid = workflow_get_workflow_for_type('proyectos_operativos'); 457 $states = workflow_get_states($wid); 458 $roles_perm = FALSE; 459 foreach ($states as $sid => $state) { 460 $roles_allow = variable_get('proyectos_operativos_state_s_' . $sid, array()); 461 $roles = array_keys($user->roles); 462 if (count($roles)) { 463 foreach ($roles as $rol) { 464 if ($roles_allow[$rol]) { 465 $roles_perm = TRUE; 466 } 467 elseif ($rol == -1 && $node->uid == $user->uid) { 468 $roles_perm = TRUE; 469 } 470 } 471 } 472 } 473 } 474 475 return $fecha && $roles_perm; 476 */ 477 /* 478 $roles_perm = FALSE; 479 $roles_allow = variable_get('proyectos_operativos_state_s_' . $estado, array()); 480 $roles = array_keys($user->roles); 481 if (count($roles)) { 482 foreach($roles as $rol) { 483 if($roles_allow[$rol]) { 484 $roles_perm = TRUE; 485 } 486 elseif ($rol == -1 && $seguimiento['uid'] == $user->uid) { 487 $roles_perm = TRUE; 488 } 489 } 490 } 491 if (!$roles_perm) { 492 return FALSE; 493 } 494 */ 495 496 /* 497 return ((_es_tipo_proyectooperativo($node))&& 498 (_mes_dentro_de_duracion_proyecto($node, $mes))&& 499 (_mes_habilitado_para_seguimiento($mes))&& 500 (_anno_habilitado_para_seg($node))&& 501 (_periodo_de_seguimiento_proyecto_y_aes_esta_activo())&& 502 (_es_usuario_autenticado())&& 503 _permiso_para_realizar_transicion_estado_proyecto($node, $mes, $estadonuevo)&& 504 (_es_elmismo_ente_proyecto_y_usuario_proyecto($node)) && 505 _proyectooperativo_esta_aprobado($node)); 506 */ 142 507 } // function _accion_especifica_de_proyecto_seguimiento_modificar_mes_access 143 508 … … 145 510 * verificar que el nodo que desea se evaluado sea de tipo 'proyectos_operativos' 146 511 */ 147 function _fasedeseguimiento_proyecto_y_ae_access($node, $mes=0) { 148 return (_es_tipo_proyectooperativo($node)&&(_mes_dentro_de_duracion_proyecto($node, $mes)) &&_proyectooperativo_esta_aprobado($node)); 512 function _fasedeseguimiento_proyecto_y_ae_access($proyecto) { 513 $mes = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0); 514 $fecha = explode('-', $proyecto->field_proyecto_fecha_i[0]['value']); 515 $mes_inicio = (int) $fecha[1]; 516 $fecha = explode('-', $proyecto->field_proyecto_fecha_f[0]['value']); 517 $mes_fin = (int) $fecha[1]; 518 return ((($mes_inicio <= $mes)||($mes_fin >= $mes)) && _proyectooperativo_esta_aprobado($proyecto)) && $proyecto->anhoproyectos_operativos == variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0); 149 519 } // function _fasedeseguimiento_proyecto_y_ae_access 150 520 … … 205 575 } 206 576 207 function _permiso_para_realizar_transicion_estado_proyecto($node, $mes = 0, $estadonuevo =0){577 function _permiso_para_realizar_transicion_estado_proyecto($node, $mes = 0, $estadonuevo = 0){ 208 578 209 579 $consultaseguimientoactual = _seguimiento_mesactual_proyecto_load($node, $mes); … … 264 634 */ 265 635 266 function _estado_seg_en_nivel_de_usuario_proyecto($node, $mes=0) {636 function _estado_seg_en_nivel_de_usuario_proyecto($node, $mes=0) { 267 637 268 638 //calcular el estado 269 639 $transiciones_dispo = _obtener_transiciones_disponibles_proyecto($node, $mes); 640 641 /*global $user; 642 643 $roles_perm = FALSE; 644 $roles_allow = variable_get('proyectos_operativos_state_s_' . $estado, array()); 645 $roles = array_keys($user->roles); 646 if (count($roles)) { 647 foreach($roles as $rol) { 648 if($roles_allow[$rol]) { 649 $roles_perm = TRUE; 650 } 651 elseif ($rol == -1 && $seguimiento['uid'] == $user->uid) { 652 $roles_perm = TRUE; 653 } 654 } 655 } 656 echo $roles_perm; 657 658 print_r($transiciones_dispo); 659 */ 270 660 $nivel_usuario = _obtener_nivel_usuario_segun_estado($transiciones_dispo['nombre_estado_actual']); 271 661 … … 321 711 */ 322 712 function proyecto_operativo_seguimiento_proyecto_obtiene_links_alter(&$links, $proyecto, $acceso = FALSE) { 323 324 $meses = array( 325 0 => t('January'), 326 1 => t('February'), 327 2 => t('March'), 328 3 => t('April'), 329 4 => t('May'), 330 5 => t('June'), 331 6 => t('July'), 332 7 => t('August'), 333 8 => t('September'), 334 9 => t('Octuber'), 335 10 => t('November'), 336 11 => t('December'), 337 ); 338 713 $meses = json_decode(MESES); 714 $mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($proyecto); 715 $mes_seguimiento_proyecto_y_aes = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0); 339 716 $nodo_proyecto = node_load($proyecto->nid); 340 717 341 if($nodo_proyecto->anhoproyectos_operativos == variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0) && _proyectooperativo_esta_aprobado($nodo_proyecto)){ 342 $mes_seguimiento_proyecto_y_aes = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0); 343 $mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($nodo_proyecto); 344 //echo $mes_seguimiento_proyecto_y_aes . '-' . $mes_fase_seg . '<br>'; 345 if ($mes_seguimiento_proyecto_y_aes == ($mes_fase_seg + 1)) { 718 //proyectosop/%proyectosop/seguimiento 719 if ($mes_seguimiento_proyecto_y_aes >= ($mes_fase_seg+1)) { 720 if($nodo_proyecto->anhoproyectos_operativos == variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0) && _proyectooperativo_esta_aprobado($nodo_proyecto)){ 346 721 $links[] = array( 347 'data' => l(t('Fase de Seguimiento ').'('.$meses[$mes_fase_seg].')', 'node/' . $nodo_proyecto->nid."/fase_de_seguimiento_proyecto_y_aes/mes/".$mes_fase_seg),722 'data' => l(t('Fase de Seguimiento'), 'proyectosop/' . $nodo_proyecto->nid . '/seguimiento'), 348 723 'class' => 'proyectos-operativos-faseseguimiento', 349 724 ); 350 725 } 351 352 726 } 353 727 } 728 729 /** 730 * Implementation of hook_node_load 731 */ 732 function proyecto_operativo_seguimiento_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) { 733 switch ($op) { 734 case 'load': 735 if ($node->type == 'proyectos_operativos') { 736 $additions = db_fetch_object(db_query('SELECT acumulativo FROM {seguimiento_proyecto} WHERE nid = %d', $node->nid)); 737 $node->es_acumulativo = $additions->acumulativo; 738 } 739 break; 740 } 741 }
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.