Conjunto 23b8d65 en sipes
- Fecha y hora:
- 08/02/2017 15:37:39 (hace 7 años)
- Branches:
- version-3.0
- Children:
- 0207ec1
- Parents:
- 72bc6f4
- Fichero:
-
- 1 editado
Leyenda
- No modificado
- Añadido
- Eliminado
-
0.3-modules/proyectos_operativos_seguimiento/includes/proyecto/cambiodeestado_seg_proyecto_paginaconfirmacion.forms.inc
r303fae2 r23b8d65 1 1 <?php 2 3 2 /** 4 3 * Sistema Automatizado para la Planificación Estratégico-Situacional en la Administración Pública Venezolana … … 30 29 * Implementation of acciones_centralizadas_seguimiento_wk_tab_page_form() 31 30 */ 32 function cambiodeestado_seg_proyecto_paginaconfirmacion_form($form_state, $node, $mes = 0, $state) { 31 function cambiodeestado_seg_proyecto_paginaconfirmacion_form($form_state, $proyecto, $mes = 0) { 32 $form = array(); 33 33 $estados = _obtener_estados_seguimiento_mes(); 34 35 $consultaseguimientoactual = _seguimiento_mesactual_proyecto_load($node, $mes); 36 37 $form = array(); 38 $form['#node'] = $node; 34 $consultaseguimientoactual = _seguimiento_mesactual_proyecto_load($proyecto, $mes); 35 $choices = _obtener_transiciones_disponibles_proyecto($proyecto, $mes); 36 $ente_planificador = ente_planificador_leer_ente_planificadores($proyecto->field_proyecto_ente[0]['nid']); 37 $hierarchical = variable_get('ente_planificador_hierarchical_count', 2); 38 39 $form['#proyecto'] = $proyecto; 39 40 $form['#segmes'] = $consultaseguimientoactual['segmes']; 40 41 $form['#nuevo_estado'] = $state; 41 42 $form['#estados'] = $estados['states']; 42 43 $form['#mes'] = $mes; 44 if (sizeof($choices['transic']) == 1) { 45 $form['prox_estado'] = array( 46 '#type' => 'hidden', 47 '#value' => $form['#segmes']['estado'], 48 '#required' => TRUE, 49 ); 50 } 51 else { 52 $form['prox_estado'] = array( 53 '#type' => 'radios', 54 '#title' => 'Cambiar al Estado', 55 '#options' => $choices['transic'], 56 '#default_value' => $form['#segmes']['estado'], 57 '#required' => TRUE, 58 '#ahah' => array( 59 'path' => 'proyectosop/seguimiento/workflow_ahah/callback', 60 'wrapper' => 'box-comment-ahah', 61 ), 62 ); 63 } 64 43 65 $form['comentario'] = array( 44 '#title' => t('Comentario '),66 '#title' => t('Comentario del Proyecto'), 45 67 '#type' => 'textarea', 46 68 '#default_value' => '', 69 '#required' => FALSE, 70 '#prefix' => '<div id="box-comment-ahah">', 71 '#suffix' => '</div>', 47 72 ); 48 49 $expr_mach = _nombres_estado_y_transiciones($estados['states'][$state]); 50 if(isset($expr_mach['nombre_corto'])){ 51 $message = t('¿Está seguro(a) que desea %accionarealizar?', array('%accionarealizar' => $expr_mach['nombre_largo'])); 52 $caption = '<p>'. t('This action cannot be undone.') .'</p>'; 53 $return_path = 'node/' . $node->nid . '/seguimiento_aeproyecto'; 54 return confirm_form($form, $message, $return_path, $caption, t('Aceptar')); 55 }else{ 56 $message = t('¿Está seguro(a) que desea cambiar el seguimiento al estado %nombre_estado?', array('%nombre_estado' => $estados['states'][$state])); 57 $caption = '<p>'. t('This action cannot be undone.') .'</p>'; 58 $return_path = 'node/' . $node->nid . '/seguimiento_aeproyecto'; 59 return confirm_form($form, $message, $return_path, $caption, t('Cambiar')); 60 } 73 74 //aplicar prefijos segun la configuración del modulo 75 if (isset($form['prox_estado']['#options'])) { 76 $current = $consultaseguimientoactual['segmes']['estado']; 77 foreach ($form['prox_estado']['#options'] as $sid => $state) { 78 if (variable_get('proyectos_operativos_state_d_' . $current . '_' . $sid, FALSE)) { 79 $form['#proyectos_operativos_states_d'][$sid] = $sid; 80 $form['prox_estado']['#options'][$sid] = t(variable_get('proyectos_operativos_state_tdevueltos', 'Devuelto a @state'), array('@state' => $form['prox_estado']['#options'][$sid])); 81 } 82 else { 83 $form['prox_estado']['#options'][$sid] = t(variable_get('proyectos_operativos_state_tndevueltos', 'Enviado a @state'), array('@state' => $form['prox_estado']['#options'][$sid])); 84 } 85 } 86 } 87 //excluir los estados de mayor nivel al ente planificador que posee el usuario 88 for ($i = 1; $i < $hierarchical + 1; $i++) { 89 if ($ente_planificador->tipo != $i) { 90 $estado = variable_get('proyectos_operativos_state_form_' . $i, 0); 91 if (isset($form['prox_estado']['#options'][$estado])) { 92 unset($form['prox_estado']['#options'][$estado]); 93 } 94 } 95 } 96 if (!variable_get('accion_especifica_de_proyecto_seguimiento_aesep', 0)) { 97 $acciones = array(); 98 $acciones_estado = array(); 99 $form['ae'] = array( 100 '#type' => 'fieldset', 101 '#title' => t('Acciones EspecÃficas'), 102 '#collapsible' => TRUE, 103 '#collapsed' => FALSE, 104 ); 105 foreach($proyecto->field_proyecto_accion_esp as $accion) { 106 $accion_load = node_load($accion['nid']); 107 $acciones_estado[$accion_load->nid] = _seguimiento_mesactual_partida_ae_deproyecto_load($accion_load, $mes); 108 $acciones[$accion_load->nid] = $accion_load; 109 $form['ae']['comentario_' . $accion_load->nid] = array( 110 '#title' => t('Comentario de la AE: @nombre', array('@nombre' => $accion_load->titulo_asignado)), 111 '#type' => 'textarea', 112 '#default_value' => '', 113 ); 114 } 115 $form['#acciones'] = $acciones; 116 $form['#acciones_estados'] = $acciones_estado; 117 } 118 119 120 $message = t('¿Está seguro(a) que desea cambiar el estado "@nombrestado" del seguimiento?', array('@nombrestado' => $choices['nombre_estado_actual'])); 121 $caption = '<p>'. t('This action cannot be undone.') .'</p>'; 122 $return_path = $_REQUEST['destination'] ? $_REQUEST['destination'] : 'proyectosop/' . $proyecto->nid . '/seguimiento/proyecto'; 123 return confirm_form($form, $message, $return_path, $caption, t('Cambiar')); 61 124 } 62 125 … … 67 130 function cambiodeestado_seg_proyecto_paginaconfirmacion_form_submit($form, &$form_state) { 68 131 global $user; 69 70 db_query("INSERT INTO {seguimiento_proyecto_transiciones_estados} (estado, estado_ant, comentario, date, id_seg, uid) VALUES (%d, %d, '%s', %d, %d, %d)", $form['#nuevo_estado'], $form['#segmes']['estado'], check_plain($form_state['values']['comentario']), time(), $form['#segmes']['id_seg'], $user->uid); 71 72 $ultima_id_transicion_seg = db_query("SELECT max(a.id_seg_transicion_estado) AS id FROM {seguimiento_proyecto_transiciones_estados} AS a WHERE a.id_seg = %d", $form['#segmes']['id_seg']); 73 $seg_transicion_estado = db_fetch_object ( $ultima_id_transicion_seg ) ; 74 75 db_query('UPDATE {seguimiento_proyecto} SET estado = %d, id_seg_transicion_estado = %d WHERE id_seg = %d', $form['#nuevo_estado'], $seg_transicion_estado->id, $form['#segmes']['id_seg']); 76 77 drupal_set_message(t('El seguimiento fue cambiado al estado @nombre_estado', array('@nombre_estado' => $form['#estados'][$form['#nuevo_estado']]))); 78 $form_state['redirect'] = 'node/' . $form['#node']->nid . '/fase_de_seguimiento_proyecto_y_aes/mes/'.$form['#mes']; 79 132 $wid = workflow_get_workflow_for_type('proyectos_operativos'); 133 $states = workflow_get_states($wid); 134 $mes_seguimiento = $mes_fase_seg = _obtener_mes_fase_seguimiento_proyecto($form['#proyecto']); 135 136 $cnt_mes_seguimiento = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0); 137 138 for ($i=$mes_seguimiento; $i<=$cnt_mes_seguimiento; $i++) { 139 $consultaseguimientoactual = _seguimiento_mesactual_proyecto_load($form['#proyecto'], $i); 140 $form['#segmes'] = $consultaseguimientoactual['segmes']; 141 db_query("INSERT INTO {seguimiento_proyecto_transiciones_estados} (estado, estado_ant, comentario, date, id_seg, uid) VALUES (%d, %d, '%s', %d, %d, %d)", $form_state['values']['prox_estado'], $form['#segmes']['estado'], check_plain($form_state['values']['comentario']), time(), $form['#segmes']['id_seg'], $user->uid); 142 143 $ultima_id_transicion_seg = db_query("SELECT max(a.id_seg_transicion_estado) AS id FROM {seguimiento_proyecto_transiciones_estados} AS a WHERE a.id_seg = %d", $form['#segmes']['id_seg']); 144 $seg_transicion_estado = db_fetch_object($ultima_id_transicion_seg) ; 145 146 db_query('UPDATE {seguimiento_proyecto} SET estado = %d, id_seg_transicion_estado = %d WHERE id_seg = %d', $form_state['values']['prox_estado'], $seg_transicion_estado->id, $form['#segmes']['id_seg']); 147 //Se actualiza el estado de las AE si no estan separadas 148 if (!variable_get('accion_especifica_de_proyecto_seguimiento_aesep', 0)) { 149 foreach($form['#acciones'] as $accion) { 150 $acciones_estado[$accion->nid] = _seguimiento_mesactual_partida_ae_deproyecto_load($accion, $i); 151 $form['#acciones_estados'] = $acciones_estado; 152 db_query("INSERT INTO {seguimiento_aeproyecto_transiciones_estados} (estado, estado_ant, comentario, date, id_seg, uid) VALUES (%d, %d, '%s', %d, %d, %d)", $form_state['values']['prox_estado'], $form['#segmes']['estado'], check_plain($form_state['values']['comentario_' . $accion->nid]), time(), $form['#acciones_estados'][$accion->nid]['segmes']['id_seg'], $user->uid); 153 $ultima_id_transicion_seg = db_query("SELECT max(a.id_seg_transicion_estado) AS id FROM {seguimiento_aeproyecto_transiciones_estados} AS a WHERE a.id_seg = %d", $form['#acciones_estados'][$accion->nid]['segmes']['id_seg']); 154 $seg_transicion_estado = db_fetch_object($ultima_id_transicion_seg); 155 db_query('UPDATE {seguimiento_aeproyecto} SET estado = %d, id_seg_transicion_estado = %d WHERE id_seg = %d', $form_state['values']['prox_estado'], $seg_transicion_estado->id, $form['#acciones_estados'][$accion->nid]['segmes']['id_seg']); 156 } 157 } 158 } 159 drupal_set_message(t('El seguimiento fue cambiado al estado @nombre_estado', array('@nombre_estado' => $form['#estados'][$form_state['values']['prox_estado']]))); 160 if (!$_REQUEST['destination']) { 161 $form_state['redirect'] = 'proyectosop/' . $form['#proyecto']->nid . '/seguimiento'; 162 } 80 163 } 164 165 /** 166 * Ahah for coment workflow 167 */ 168 function ahah_proyectosop_seguimiento_workflow_callback() { 169 $form_state = array('storage' => NULL, 'submitted' => FALSE); 170 $form_build_id = $_POST['form_build_id']; 171 $form = form_get_cache($form_build_id, $form_state); 172 $args = $form['#parameters']; 173 $form_id = array_shift($args); 174 $form['#post'] = $_POST; 175 $form['#programmed'] = FALSE; 176 $form_state['post'] = $_POST; 177 178 //field not required 179 if ($_POST['prox_estado']) { 180 $current = $form['#segmes']['estado']; 181 if (variable_get('proyectos_operativos_state_d_' . $current . '_' . trim($_POST['prox_estado']), FALSE)) { 182 $form['comentario']['#required'] = TRUE; 183 } 184 else { 185 $form['comentario']['#required'] = FALSE; 186 } 187 } 188 189 form_set_cache($form_build_id, $form, $form_state); 190 $form += array( 191 '#post' => $_POST, 192 '#programmed' => FALSE, 193 ); 194 // Rebuild the form. 195 $form = form_builder($_POST['form_id'], $form, $form_state); 196 197 $segui_form = array(); 198 $segui_form = $form['comentario']; 199 200 unset($segui_form['#prefix'], $segui_form['#suffix']); // Prevent duplicate wrappers. 201 $output = drupal_render($segui_form); 202 203 print drupal_to_js(array('data' => $output, 'status' => true)); 204 exit(); 205 }
Nota: Vea TracChangeset
para ayuda en el uso del visor de conjuntos de cambios.