Conjunto d164b29 en sipes
- Fecha y hora:
- 12/05/2017 17:30:17 (hace 7 años)
- Branches:
- stable
- Children:
- 5d7d8d6
- Parents:
- 2b3e7ae
- Fichero:
-
- 1 editado
Leyenda
- No modificado
- Añadido
- Eliminado
-
0.3-modules/proyectos_operativos_seguimiento/proyecto_operativo_seguimiento.module
r3c7b6ac rd164b29 80 80 'weight' => -10 81 81 ); 82 $items['proyectosop/%proyectosop/seguimiento/workflow/ send'] = array(82 $items['proyectosop/%proyectosop/seguimiento/workflow/%'] = array( 83 83 'title' => 'Enviar Seguimiento', 84 84 'type' => MENU_LOCAL_TASK, 85 85 'access callback' => '_proyecto_seguimiento_mes_mover_estado_access', 86 'access arguments' => array(1 ),86 'access arguments' => array(1, 4), 87 87 'page callback' => 'drupal_get_form', 88 'page arguments' => array('cambiodeestado_seg_proyecto_paginaconfirmacion_form', 1 ),88 'page arguments' => array('cambiodeestado_seg_proyecto_paginaconfirmacion_form', 1, 4), 89 89 'file' => 'includes/proyecto/cambiodeestado_seg_proyecto_paginaconfirmacion.forms.inc', 90 90 'weight' => 2, … … 124 124 ); 125 125 126 / /----------------------------------------------------------------------------workflow126 /*----------------------------------------------------------------------------workflow 127 127 $items['proyectosop/%proyectosop/seguimiento/proyecto/%messeg/workflow'] = array( 128 128 'title' => 'Seguimiento', … … 135 135 'weight' => 2, 136 136 ); 137 138 $items['proyectosop/%proyectosop/seguimiento/%messeg/history'] = array( 137 */ 138 139 $items['proyectosop/%proyectosop/seguimiento/workflowhis'] = array( 139 140 'title' => 'Historial Seguimiento', 140 141 'type' => MENU_LOCAL_TASK, … … 143 144 'file' => 'includes/proyecto/historial_cambiodeestado_seg_proyecto.pages.inc', 144 145 'page callback' => 'historial_cambiodeestado_seg_proyecto_page', 145 'page arguments' => array(1 , 4),146 'page arguments' => array(1), 146 147 'weight' => 2, 147 148 ); … … 181 182 $mes_o = $mes; 182 183 //esta fuera del mes de seguimiento actual 183 if (!_mes_habilitado_para_seguimiento($mes +1)) { 184 return FALSE; 185 } 186 187 $mes++;//colocando parametro entre 1 y 12 188 $mes_final = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0); 184 if (!_mes_habilitado_para_seguimiento($mes)) { 185 return FALSE; 186 } 187 188 $mes_final = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1); 189 189 //esta fuera del anho de seguimiento actual 190 190 if ($proyecto->anhoproyectos_operativos != variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0)) { … … 250 250 } 251 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 252 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 */ 304 } // function _proyecto_operativo_seguimiento_modificar_mes_access 253 } 305 254 306 255 /** … … 308 257 */ 309 258 function _proyecto_seguimiento_mes_mover_estado_access($node, $mes = 0, $message = false) { 310 /*311 if ($mes == 0) {312 $mes = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0);313 }314 */315 259 global $user; 260 $mesI = $mes; 261 $meses = json_decode(MESES); 262 316 263 $seguimiento = _seguimiento_mesactual_proyecto_load($node, $mes); 317 264 // si no estan separadas el seguimiento de las AE con los proyectos 265 $acciones = array(); 318 266 if (!variable_get('accion_especifica_de_proyecto_seguimiento_aesep', 0)) { 319 267 //se verifica que se haya ingresado todo el seguimiento de las acciones especificas … … 321 269 $count = 0; 322 270 $acciones_estado = array(); 323 $cnt = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0) + ($mes);324 271 $count_proyect = 0; 272 325 273 326 274 foreach($node->field_proyecto_accion_esp as $accion) { 327 275 $accion_load = (object) $accion; 328 $acciones_estado[$accion['nid']] = _seguimiento_mesactual_partida_ae_deproyecto_load($accion_load, $mes);329 276 //se busca manejar la cantidad total de acciones disponibles por mes, exluir las restantes 330 277 $accion_load = node_load($accion['nid']); 278 331 279 //obtener la cantidad total de las transiciones disponibles de todas las acciones para todos los meses 332 // $transiciones = array(); 333 for ($i=$mes; $i<$cnt; $i++) { 334 // $transiciones[] = _seguimiento_mesactual_partida_ae_deproyecto_load($accion_load, $i); 335 336 $mes_restante = $i; 337 if (_accion_especifica_de_proyecto_seguimiento_consultar_mes_access($accion_load, $i)) { 338 if ($transiciones_dispo = _obtener_transiciones_disponibles($accion_load, $i)) { 339 340 /* 341 print '<pre>'; 342 print_r($transiciones_dispo); 343 print '</pre>'; 344 */ 345 346 $count++; 280 if (in_array($mes, variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1) )) { 281 $acciones_estado[$accion['nid']] = _seguimiento_mesactual_partida_ae_deproyecto_load($accion_load, $mes); 282 if (is_numeric($acciones_estado[$accion['nid']]['segmes']['mes'])) { 283 $mes_accion[$accion['nid']][$mes] = $acciones_estado[$accion['nid']]['segmes']['mes']; 284 $accion_content[$mes][$accion['nid']] = $mes; 347 285 } 348 else { 349 $mes_restante = $i; 286 if ($transiciones_dispoP = _obtener_transiciones_disponibles_proyecto($node, $mes)) { 287 if ((count($transiciones_dispoP['transic']) && !$transiciones_dispoP['estado_actual']) || (!count($transiciones_dispoP['transic']) && $transiciones_dispoP['estado_actual'])) { 288 return false; 289 } 290 elseif (!($transiciones_dispoP['estado_actual']) || !$transiciones_dispoP['nombre_estado_actual']) { 291 return false; 292 } 350 293 } 351 if (count($transiciones_dispo['transic'])) { 352 $cuenta++; 294 $total_acciones = count($acciones_estado); 295 $transiciones = _obtener_transiciones_disponibles($accion_load, $mes); 296 297 if ((count($transiciones['transic']) && !$transiciones['estado_actual']) || (!count($transiciones['transic']) && $transiciones['estado_actual'])) { 298 return FALSE; 353 299 } 354 } 300 elseif (!($transiciones['estado_actual']) || !$transiciones['nombre_estado_actual']) { 301 return false; 302 } 355 303 } 356 357 /*if ($seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $i)) { 358 if ($seguimiento_proyecto['segmes']['estado']) { 359 $count_proyecto++; 360 } 361 }*/ 362 363 /* 364 print '<pre>'; 365 print_r($transiciones_dispo); 366 print '</pre>'; 367 */ 368 369 /* if ($acciones_estado[$accion['nid']]['segmes']) { 370 $cuenta++; 371 } 372 */ 373 374 } 375 $countP = 0; 376 $cuentaP = 0; 377 for ($i=$mes; $i<$cnt; $i++) { 378 if ($transiciones_dispo = _obtener_transiciones_disponibles_proyecto($node, $i)) { 379 if (count($transiciones_dispo['transic']) && $transiciones_dispo['estado_actual']>0) { 380 $cuentaP++; 381 } 382 $countP++; 383 } 384 } 385 if ($countP != $cuentaP || $cuentaP == 0) { 386 return FALSE; 387 } 388 if (($count != $cuenta || $count == 0) && !user_access('admin planificador')) { 389 return FALSE; 390 } 391 elseif ($message) { 392 $text = t("El envio del seguimiento del proyecto ya se encuentra disponible"); 393 $text .= ' <b>'.l(t('Enviar el Seguimiento'), 'proyectosop/' . $node->nid. "/seguimiento/workflow/send") . '</b>'; 394 drupal_set_message($text, "warning"); 395 } 396 /*if ($count_proyecto != $cnt) { 397 drupal_set_message(t("Para poder realizar el envio del reporte es necesario completar el seguimiento del proyecto en los meses faltantes"), "warning"); 398 return FALSE; 399 }*/ 304 } 400 305 } 401 306 402 307 //esta fuera del mes de seguimiento actual 403 if (!_mes_habilitado_para_seguimiento($mes +1)) {404 return FALSE; 405 } 406 $mes++;//colocando parametro entre 1 y 12 308 if (!_mes_habilitado_para_seguimiento($mes) && !(in_array($mes, variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1) ))) { 309 return FALSE; 310 } 311 407 312 //esta fuera del anho de seguimiento actual 408 313 $anno = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0); … … 422 327 $ente = usuario_tiene_ente($user->uid); 423 328 $ente_planificador = ente_planificador_leer_ente_planificadores($node->field_proyecto_ente[0]['nid']); 424 /*425 if (($ente_planificador->nid != $ente->nid)&& !user_access('admin planificador')) {426 return FALSE;427 }428 */429 329 430 330 $current_time = time(); … … 447 347 } 448 348 } 349 449 350 return $fecha; 450 /* 451 if (module_exists('workflow') && !user_access('admin planificador')) { 452 $estado = 0; 453 if (!$seguimiento) { 454 $states = _proyectos_operativos_reformula_obtiene_estados(); 455 if ($states['wid']) { 456 $estado = _workflow_creation_state($states['wid']); 457 } 458 } 459 else { 460 $estado = $seguimiento['estado']; 461 } 462 463 $roles_perm = TRUE; 464 if (module_exists('workflow') && $fecha && !user_access('admin planificador')) { 465 $estado = 0; 466 $wid = workflow_get_workflow_for_type('proyectos_operativos'); 467 $states = workflow_get_states($wid); 468 $roles_perm = FALSE; 469 foreach ($states as $sid => $state) { 470 $roles_allow = variable_get('proyectos_operativos_state_s_' . $sid, array()); 471 $roles = array_keys($user->roles); 472 if (count($roles)) { 473 foreach ($roles as $rol) { 474 if ($roles_allow[$rol]) { 475 $roles_perm = TRUE; 476 } 477 elseif ($rol == -1 && $node->uid == $user->uid) { 478 $roles_perm = TRUE; 479 } 480 } 481 } 482 } 483 } 484 485 return $fecha && $roles_perm; 486 */ 487 /* 488 $roles_perm = FALSE; 489 $roles_allow = variable_get('proyectos_operativos_state_s_' . $estado, array()); 490 $roles = array_keys($user->roles); 491 if (count($roles)) { 492 foreach($roles as $rol) { 493 if($roles_allow[$rol]) { 494 $roles_perm = TRUE; 495 } 496 elseif ($rol == -1 && $seguimiento['uid'] == $user->uid) { 497 $roles_perm = TRUE; 498 } 499 } 500 } 501 if (!$roles_perm) { 502 return FALSE; 503 } 504 */ 505 506 /* 507 return ((_es_tipo_proyectooperativo($node))&& 508 (_mes_dentro_de_duracion_proyecto($node, $mes))&& 509 (_mes_habilitado_para_seguimiento($mes))&& 510 (_anno_habilitado_para_seg($node))&& 511 (_periodo_de_seguimiento_proyecto_y_aes_esta_activo())&& 512 (_es_usuario_autenticado())&& 513 _permiso_para_realizar_transicion_estado_proyecto($node, $mes, $estadonuevo)&& 514 (_es_elmismo_ente_proyecto_y_usuario_proyecto($node)) && 515 _proyectooperativo_esta_aprobado($node)); 516 */ 517 } // function _accion_especifica_de_proyecto_seguimiento_modificar_mes_access 351 } 518 352 519 353 /** … … 542 376 */ 543 377 function _proyectooperativo_esta_aprobado($node) { 544 545 $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL); 546 547 if($node->type =='proyectos_operativos'){ 548 return ($node->_workflow == $estado_aprobado); 549 }elseif($node->type =='accion_especifica'){ 550 $nodo_proyecto = node_load($node->field_accion_esp_proyecto[0]['nid']); 551 return ($nodo_proyecto->_workflow == $estado_aprobado); 378 379 $meses = json_decode(MESES); 380 $mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($node); 381 $mes_seguimiento_proyecto_y_aes = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0); 382 $nodo_proyecto = node_load($node->nid); 383 384 $anno = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0); 385 $fecha = explode('-', $nodo_proyecto->field_proyecto_fecha_i[0]['value']); 386 $mes_inicio = (int) $fecha[1]; 387 $year_inicio = (int) $fecha[0]; 388 389 //exluir el link de la tabla de proyectos 390 if (($year_inicio < $anno) || ($year_inicio == $anno) && in_array($mes_inicio, variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1))) { 391 $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL); 392 if($node->type =='proyectos_operativos'){ 393 return ($node->_workflow == $estado_aprobado); 394 }elseif($node->type =='accion_especifica'){ 395 $nodo_proyecto = node_load($node->field_accion_esp_proyecto[0]['nid']); 396 return ($nodo_proyecto->_workflow == $estado_aprobado); 397 } 552 398 } 553 399 return FALSE; … … 724 570 $mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($proyecto); 725 571 $mes_seguimiento_proyecto_y_aes = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0); 572 $cnt = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1); 726 573 $nodo_proyecto = node_load($proyecto->nid); 727 574 728 //proyectosop/%proyectosop/seguimiento 729 if ($mes_seguimiento_proyecto_y_aes >= ($mes_fase_seg+1)) { 730 if($nodo_proyecto->anhoproyectos_operativos == variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0) && _proyectooperativo_esta_aprobado($nodo_proyecto)){ 731 $links[] = array( 732 'data' => l(t('Fase de Seguimiento'), 'proyectosop/' . $nodo_proyecto->nid . '/seguimiento'), 733 'class' => 'proyectos-operativos-faseseguimiento', 734 ); 735 } 575 $anno = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0); 576 $fecha = explode('-', $proyecto->field_proyecto_fecha_i[0]['value']); 577 $mes_inicio = (int) $fecha[1]; 578 $year_inicio = (int) $fecha[0]; 579 580 //exluir el link de la tabla de proyectos 581 if (($year_inicio < $anno) || ($year_inicio == $anno && in_array($mes_fase_seg, variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 1)))) { 582 if($nodo_proyecto->anhoproyectos_operativos == variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0) && _proyectooperativo_esta_aprobado($nodo_proyecto)){ 583 $links[] = array( 584 'data' => l(t('Fase de Seguimiento'), 'proyectosop/' . $nodo_proyecto->nid . '/seguimiento'), 585 'class' => 'proyectos-operativos-faseseguimiento', 586 ); 587 } 736 588 } 737 589 }
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.