Conjunto 72bc6f4 en sipes


Ignorar:
Fecha y hora:
08/02/2017 15:36:32 (hace 7 años)
Autor:
Cenditel <root@…>
Branches:
version-3.0
Children:
23b8d65
Parents:
54a3738
Mensaje:

se agrego la estructura que permite trabajar el seguimiento del proyecto por periodos

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • 0.3-modules/proyectos_operativos_seguimiento/includes/proyecto/seguimiento_proyecto_datospormes_modificar.forms.inc

    r303fae2 r72bc6f4  
    3333 * Definicion del Formulario
    3434 */
    35 function seguimiento_proyecto_datospormes_modificar_form($form_state, $node, $mes = 0) {
     35function seguimiento_proyecto_datospormes_modificar_form($form_state, $node, $mes = 0, $field = 'full') {
    3636  $proyectos_operativos_path = drupal_get_path('module', 'proyectos_operativos');
    3737  drupal_add_js($proyectos_operativos_path . '/js/proyectos_operativos_extra.js');
     
    4747  $form['#format_number'] = array('format_number' => $format_number);
    4848  drupal_add_js($form['#format_number'], 'setting');
    49   $meses = array(
    50     0 => t('January'),
    51     1 => t('February'),
    52     2 => t('March'),
    53     3 => t('April'),
    54     4 => t('May'),
    55     5 => t('June'),
    56     6 => t('July'),
    57     7 => t('August'),
    58     8 => t('September'),
    59     9 => t('Octuber'),
    60     10 => t('November'),
    61     11 => t('December'),
    62   );
     49  $meses = json_decode(MESES);
    6350
    6451  drupal_set_title(t('Seguimiento y Control de Proyecto Operativo'.' (mes de '.$meses[$mes].')'));
     
    8673
    8774  $consultaseguimientoactual = _seguimiento_mesactual_proyecto_load($node, $mes);
    88  
     75
    8976  //estado
    9077  $estado = ((isset($consultaseguimientoactual['segmes']['estado'])) && ($consultaseguimientoactual['segmes']['estado'] > 0) )? $consultaseguimientoactual['segmes']['estado'] : -1;
     
    9279  //get first state
    9380  if ($estado == -1 && module_exists('workflow')) {
    94     $wid = workflow_get_workflow_for_type('accion_centralizada');
     81    $wid = workflow_get_workflow_for_type('proyectos_operativos');
    9582    if ($wid) {
    9683      $form['#state_creation'] = _workflow_creation_state($wid);
    9784    }
    9885  }
    99  
     86  $fecha = explode('-', $node->field_proyecto_fecha_i[0]['value']);
     87  $mes_inicio = (int) $fecha[1];
     88  $mes_final = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0);
     89  if ($mes_inicio <= ($mes_final + 1)) {
     90    $form['es_acumulativo'] = array(
     91      '#type' => 'select',
     92      '#options' => array('No', 'Si'),
     93      '#default_value' => ($node->es_acumulativo) ? 1 : 0,
     94    );
     95  }
     96
    10097  $header = array();
    10198  $header[] = array('data' => t('Partida'));
     
    128125 
    129126  $cant_metafisica_ej = isset($consultaseguimientoactual['segmes']['ejecutadometafisica']) ? $consultaseguimientoactual['segmes']['ejecutadometafisica'] : 0;
    130 
    131   $form['cantidad_metafisica_ejecutado'] = array(
    132     //'#title' => t('Ejecutado Meta Fisica'),
    133     '#type' => 'textfield',
    134     '#size' => 15,
    135     '#default_value' => $cant_metafisica_ej,
    136    // '#disabled' => $disabled,
    137     '#attributes' => array('class' => 'number', 'onchange' => "valpositivo('" . 'cantidad-metafisica-ejecutado' . "');calculaporc_metafisica('" . "');valenterometafisica('cantidad-metafisica-ejecutado')"),
    138   );
    139  
    140   $zonacritica1 = $cant_metafisica_planif ? $cant_metafisica_ej/$cant_metafisica_planif : -1;
    141 //  $porczonacritica1 = $zonacritica1 >= 0 ? ($zonacritica1 * 100) . '%' : 'N/A';
    142   $porczonacritica1 = $zonacritica1 >= 0 ? ($zonacritica1 * 100) . '%' : $cant_metafisica_ej ? 'N/D' : 'N/A';     
    143   $form['cantidad_metafisica_porcen'] = array(
    144         '#type' => 'textfield',
    145         '#default_value' => $porczonacritica1,
    146         '#size' => 15,
    147         '#disabled' => TRUE,
    148         '#attributes' => array('class' => 'number',),
    149   );
    150  
    151   $infocomplementaria_fisica = isset($consultaseguimientoactual['segmes']['infocomplementaria_metafisica']) ? $consultaseguimientoactual['segmes']['infocomplementaria_metafisica'] : '';
    152  
    153   $form['comentario_metafisica'] = array(
    154     '#title' => t('Información Complementaria (Meta Física)'),
    155     '#type' => 'textarea',
    156     '#default_value' => $infocomplementaria_fisica,
    157   );
    158  
    159   $infocomplementaria_financiera = isset($consultaseguimientoactual['segmes']['infocomplementaria_metafinanciera']) ? $consultaseguimientoactual['segmes']['infocomplementaria_metafinanciera'] : '';
    160    
    161   $form['comentario_informacionfinanciera'] = array(
    162     '#title' => t('Información Complementaria (Financiera)'),
    163     '#type' => 'textarea',
    164     '#default_value' => $infocomplementaria_financiera,
    165   );
    166  
    167 
    168   if (variable_get('proyectos_operativos_muestra_beneficiario', TRUE)) { 
     127  //op field show
     128  $form['#op_fields'] = $field;
     129
     130  if ($field == 'comentario_metafisica' || $field == 'full') {
     131    $form['cantidad_metafisica_ejecutado'] = array(
     132      //'#title' => t('Ejecutado Meta Fisica'),
     133      '#type' => 'textfield',
     134      '#size' => 15,
     135      '#default_value' => $cant_metafisica_ej,
     136     // '#disabled' => $disabled,
     137      '#attributes' => array('class' => 'number', 'onchange' => "valpositivo('" . 'cantidad-metafisica-ejecutado' . "');calculaporc_metafisica('" . "');valenterometafisica('cantidad-metafisica-ejecutado')"),
     138    );
     139 
     140    $zonacritica1 = $cant_metafisica_planif ? $cant_metafisica_ej/$cant_metafisica_planif : -1;
     141  //  $porczonacritica1 = $zonacritica1 >= 0 ? ($zonacritica1 * 100) . '%' : 'N/A';
     142    $porczonacritica1 = $zonacritica1 >= 0 ? ($zonacritica1 * 100) . '%' : $cant_metafisica_ej ? 'N/D' : 'N/A';     
     143    $form['cantidad_metafisica_porcen'] = array(
     144      '#type' => 'textfield',
     145      '#default_value' => $porczonacritica1,
     146      '#size' => 15,
     147      '#disabled' => TRUE,
     148      '#attributes' => array('class' => 'number',),
     149    );
     150 
     151    $infocomplementaria_fisica = isset($consultaseguimientoactual['segmes']['infocomplementaria_metafisica']) ? $consultaseguimientoactual['segmes']['infocomplementaria_metafisica'] : '';
     152    $form['comentario_metafisica'] = array(
     153      '#title' => t('Información Complementaria (Meta Física)'),
     154      '#type' => 'textarea',
     155      '#default_value' => $infocomplementaria_fisica,
     156    );
     157  }
     158  if ($field == 'comentario_informacionfinanciera' || $field == 'full') {
     159    $infocomplementaria_financiera = isset($consultaseguimientoactual['segmes']['infocomplementaria_metafinanciera']) ? $consultaseguimientoactual['segmes']['infocomplementaria_metafinanciera'] : '';
     160    $form['comentario_informacionfinanciera'] = array(
     161      '#title' => t('Información Complementaria (Financiera)'),
     162      '#type' => 'textarea',
     163      '#default_value' => $infocomplementaria_financiera,
     164    );
     165  }
     166
     167  if (variable_get('proyectos_operativos_muestra_beneficiario', TRUE) && $field == 'comentario_metafisica' || $field == 'full') { 
    169168    $header3 = array();
    170169    $header3[] = array('data' => t('Beneficiario'));
     
    217216 */
    218217function theme_seguimiento_proyecto_datospormes_modificar_form($form) {
     218  $meses = json_decode(MESES);
    219219  $proyectos_operativos_path = drupal_get_path('module', 'proyectos_operativos');
    220220  drupal_add_js($proyectos_operativos_path . '/js/proyectos_operativos_extra.js');
     
    222222  drupal_add_js($modulo_seguimiento_proyecto_y_aes_path . '/js/seg_proyecto_validaciones_original.js');
    223223  drupal_add_js($form['#format_number'], 'setting');
    224   $meses = array(
    225     0 => t('January'),
    226     1 => t('February'),
    227     2 => t('March'),
    228     3 => t('April'),
    229     4 => t('May'),
    230     5 => t('June'),
    231     6 => t('July'),
    232     7 => t('August'),
    233     8 => t('September'),
    234     9 => t('Octuber'),
    235     10 => t('November'),
    236     11 => t('December'),
    237   );
    238224  $header = array();
    239225  $header[] = array('data' => t('AE'));
     
    246232 
    247233  $rows = array();
    248 
     234  $consultaseguimientoactual = _seguimiento_mesactual_proyecto_load($form['#node'], $form['#mes']);
     235  $transiciones_dispo = _obtener_transiciones_disponibles($form['#node'], $form['#mes']);
     236
     237  $status_actual = t('Por ingresar');
     238  if (isset($transiciones_dispo['nombre_estado_actual'])) {
     239    $status_actual = $transiciones_dispo['nombre_estado_actual'];
     240  }
    249241  $seguimiento_financiero_proyecto = _cargar_totales_seguimiento_aes_delproyecto($form['#node'], $form['#mes']);
     242
    250243  foreach ($seguimiento_financiero_proyecto['seg_financiero_aes'] as $acciones_especif) {
    251    
    252244      $asignadov = $acciones_especif['totalAsignadoAEs'];
    253245      $causadov = $acciones_especif['totalCausadoAEs'];
     
    293285  $header2 = array();
    294286  $header2[] = array('data' => t('Planificado'));
    295   $header2[] = array('data' => t('Ejecutado')); 
     287  $header2[] = array('data' => t('Ejecutado'));
    296288  $header2[] = array('data' => t('% de Logro'));
    297289  $header2[] = array('data' => t('Estatus de la Inversión'));
     
    313305  $rows2[] = $row2;
    314306 
     307 
     308  $output = '';
     309 
     310  $output .= '<br>';
     311
     312  $seguimiento_proyecto = _seguimiento_mesactual_proyecto_load($node, $i);
     313  $state_name = t("Por ingresar");
     314  if (workflow_get_state_name($seguimiento_proyecto['segmes']['estado'])) {
     315    $state_name = workflow_get_state_name($seguimiento_proyecto['segmes']['estado']);
     316  }
     317
     318  $grupo = explode('-', $form['#grupo']['label']);
     319  $output .= '<fieldset><legend>Datos del Proyecto Operativo</legend>';
     320  $output .= '<b>Código del Proyecto:</b> '. $node->field_proyecto_codigo[0]['value'].'<br>';
     321  $output .= '<b>Nombre del Proyecto:</b> '. $node->titulo_asignado.'<br>';
     322
     323  $output .= '<b>' . t('Estado del Seguimiento: ') . '</b>' . $state_name . '<br>';
     324  $output .= '</fieldset>';
     325
     326  $fecha = explode('-', $node->field_proyecto_fecha_i[0]['value']);
     327  $mes_inicio = (int) $fecha[1];
     328  $mes_final = variable_get('seguimiento_proyectos_cantidad_meses_seguimiento', 0);
     329
     330  if ($form['#op_fields'] == 'comentario_metafisica' || $form['#op_fields'] == 'full') {
     331    $output .= '<fieldset><legend>' . t('Indicadores de Meta Física del Proyecto') . '</legend>';
     332
     333  if ($node->field_proyecto_unidadm) {
     334    $output .= '<b>' . t("Unidad de Medida del Proyecto: ") . '</b>';
     335    $count = 0;
     336    $output .= '<ul>';
     337    foreach ($node->field_proyecto_unidadm as $key => $value) {
     338      $count++;
     339      $tid = $value['value'];
     340      $term = taxonomy_get_term($tid);
     341        $output .=  '<li>' . $count . '-) ' . $term->name . '</li>';
     342    }
     343    $output .= '</ul>';
     344  }
     345  if ($mes_inicio <= ($mes_final + 1)) {
     346    $title[] = '<b>' . t('La unidad de medida se considera acumulativa:') . '</b>';
     347    $column[] =  array('data' => drupal_render($form['es_acumulativo']));
     348    $columns[] = $column;
     349    $output .= theme('table', $title, $columns) . '<br>';
     350  }
     351    $output .=  '<div class="field-label"><b>' . t('Mes de Seguimiento Actual:') . '</b> ' . $meses[$form['#mes']] . '</div>' . theme('table', $header2, $rows2) ;
     352    if($form['#metafisica_con_planificado_cero'] == 1){
     353      $output .= '<br><b>Nota</b>: Si desea ingresar una cantidad de ejecutado de meta física mayor que cero, <i>primero</i> debe realizar una reformulación a la meta física de este mes.<br>';
     354    }
     355    $output .= drupal_render($form['comentario_metafisica']);
     356    $output .= '</fieldset>';
     357  }
     358 
     359  if ($form['#op_fields'] == 'comentario_informacionfinanciera' || $form['#op_fields'] == 'full') {
     360    $output .= '<fieldset><legend>' . t('Indicadores Financieros (por Acciones Específicas) del Proyecto') . '</legend>' . '<div class="field-label"><b>' . t('Mes de Seguimiento Actual:') . '</b> ' . $meses[$form['#mes']] . '</div>' . theme('table', $header, $rows) ;
     361    $output .= '<br><b>Nota</b>: Para modificar los valores de <b>\'Comprometido\'</b>, <b>\'Causado\'</b> y <b>\'Pagado\'</b> debe ingresar por el Seguimiento de cada Acción Específica.<br>';
     362    $output .= drupal_render($form['comentario_informacionfinanciera']);
     363    $output .= '</fieldset>';
     364  }
     365
    315366  //beneficiarios
    316367  $muestra_beneficiarios = variable_get('proyectos_operativos_muestra_beneficiario', TRUE);
    317   if ($muestra_beneficiarios) {
     368  $muestra = false;
     369  if ($muestra_beneficiarios && isset($form['comentario_metafisica'])  || $form['#op_fields'] == 'full') {
    318370    $header3 = array();
    319371    $header3[] = array('data' => t('Beneficiario'));
    320372    $rows3 = array();
    321373    foreach($node->field_proyecto_beneficiario as $id => $beneficiarios) {
    322       $row3 = array();
    323       $row3[] = array('data' => $beneficiarios['value'],);
    324       $row3[] = array('data' => drupal_render($form['tipobeneficiario_'.$id]),);
    325       $rows3[] = $row3;
    326     }
    327   }
    328  
    329   $output = '';
    330  
    331   $output .= '<br>';
    332  
    333   $grupo = explode('-', $form['#grupo']['label']);
    334  
    335   $output .= '<fieldset><legend>Datos del Proyecto Operativo</legend>';
    336   $output .= '<b>Código del Proyecto:</b> '.$node->field_proyecto_codigo[0]['value'].'<br>';
    337   $output .= '<b>Nombre del Proyecto:</b> '.$node->titulo_asignado.'<br>';
    338   $output .= '</fieldset>';
    339  
    340   $output .= '<fieldset><legend>' . t('Indicadores de Meta Física del Proyecto') . '</legend>' . '<div class="field-label"><b>' . t('Mes de Seguimiento Actual:') . '</b> ' . $meses[$form['#mes']] . '</div>' . theme('table', $header2, $rows2) ;
    341   if($form['#metafisica_con_planificado_cero'] == 1){
    342     $output .= '<br><b>Nota</b>: Si desea ingresar una cantidad de ejecutado de meta física mayor que cero, <i>primero</i> debe realizar una reformulación a la meta física de este mes.<br>';
    343   }
    344   $output .= drupal_render($form['comentario_metafisica']);
    345   $output .= '</fieldset>';
    346  
    347   $output .= '<fieldset><legend>' . t('Indicadores Financieros (por Acciones Específicas) del Proyecto') . '</legend>' . '<div class="field-label"><b>' . t('Mes de Seguimiento Actual:') . '</b> ' . $meses[$form['#mes']] . '</div>' . theme('table', $header, $rows) ;
    348   $output .= '<br><b>Nota</b>: Para modificar los valores de <b>\'Comprometido\'</b>, <b>\'Causado\'</b> y <b>\'Pagado\'</b> debe ingresar por el Seguimiento de cada Acción Específica.<br>';
    349   $output .= drupal_render($form['comentario_informacionfinanciera']);
    350   $output .= '</fieldset>';
    351   if ($muestra_beneficiarios) { 
    352     $header3[] = array('data' => t('Cantidad de Beneficiarios durante el mes de ').$meses[$form['#mes']]);
     374      if (isset($form['tipobeneficiario_'.$id])) {
     375        $row3 = array();
     376        $row3[] = array('data' => $beneficiarios['value'],);
     377        $row3[] = array('data' => drupal_render($form['tipobeneficiario_'.$id]),);
     378        $rows3[] = $row3;
     379        $muestra = true;
     380      }
     381    }
     382  }
     383
     384  if ($muestra_beneficiarios && $muestra || $form['#op_fields'] == 'full') {
     385    $header3[] = array('data' => t('Cantidad de Beneficiarios durante el mes de ') . $meses[$form['#mes']]);
    353386    $output .= '<fieldset><legend>' . t('Beneficiarios del Proyecto (Durante la Ejecución)') . '</legend>' . '<div class="field-label"></div>' . theme('table', $header3, $rows3) ;
    354387    $output .= '</fieldset>';
     
    367400 */
    368401function seguimiento_proyecto_datospormes_modificar_form_validate($form, &$form_state) {
    369     $proyectos_operativos_path = drupal_get_path('module', 'proyectos_operativos');
     402  $proyectos_operativos_path = drupal_get_path('module', 'proyectos_operativos');
    370403  drupal_add_js($proyectos_operativos_path . '/js/proyectos_operativos_extra.js');
    371404  $modulo_seguimiento_proyecto_y_aes_path = drupal_get_path('module', 'accion_especifica_de_proyecto_seguimiento');
     
    373406  drupal_add_js($form['#format_number'], 'setting');
    374407  //valores positivos meta física
    375   if ($form_state['values']['cantidad_metafisica_ejecutado'] < 0) {
    376     form_set_error('cantidad_metafisica_ejecutado', t('El valor \'Ejecutado\' en la meta física debe ser mayor o igual a cero.'));
     408  if (isset($form_state['values']['cantidad_metafisica_ejecutado'])) {
     409    if ($form_state['values']['cantidad_metafisica_ejecutado'] < 0) {
     410      form_set_error('cantidad_metafisica_ejecutado', t('El valor \'Ejecutado\' en la meta física debe ser mayor o igual a cero.'));
     411    }
    377412  }
    378413 
    379414  //valores positivos cantidad de beneficiarios durante el mes
    380   if (variable_get('proyectos_operativos_muestra_beneficiario', TRUE)) {
    381     foreach($form['#node']->field_proyecto_beneficiario as $id => $beneficiarios) {
    382       if ($form_state['values']['tipobeneficiario_'.$id] < 0) {
    383         form_set_error('tipobeneficiario_'.$id, t('La cantidad de beneficiarios debe ser mayor o igual a cero.'));
     415  if (variable_get('proyectos_operativos_muestra_beneficiario', TRUE) && isset($form['comentario_metafisica'])) {
     416    if (isset($form['#node']->field_proyecto_beneficiario)) {
     417      foreach($form['#node']->field_proyecto_beneficiario as $id => $beneficiarios) {
     418        if ($form_state['values']['tipobeneficiario_'.$id] < 0) {
     419          form_set_error('tipobeneficiario_'.$id, t('La cantidad de beneficiarios debe ser mayor o igual a cero.'));
     420        }
    384421      }
    385422    }
     
    392429 */
    393430function seguimiento_proyecto_datospormes_modificar_form_submit($form, &$form_state) {
    394  
     431  global $user;
    395432  $consultaseguimientoactual = _seguimiento_mesactual_proyecto_load($form['#node'], $form['#mes']);
    396  
    397   global $user;
    398   if(isset($consultaseguimientoactual['segmes']['id_seg'])){
     433  if (isset($consultaseguimientoactual['segmes']['id_seg'])) {
     434    $es_acumulativo = isset($form_state['values']['es_acumulativo']) ? $form_state['values']['es_acumulativo'] : $form['#node']->es_acumulativo;
    399435    //actualizar
    400     $ss1=check_plain($form_state['values']['comentario_metafisica']);
    401     $sss=check_plain($form_state['values']['comentario_informacionfinanciera']);
    402     $exe_query = db_query("UPDATE {seguimiento_proyecto} SET ejecutadometafisica = %d, infocomplementaria_metafisica = '%s', infocomplementaria_metafinanciera = '%s' WHERE id_seg = %d", $form_state['values']['cantidad_metafisica_ejecutado'], $ss1, $sss, $consultaseguimientoactual['segmes']['id_seg']);
     436    if ($form['#op_fields'] == 'comentario_metafisica' || $form['#op_fields'] == 'full' && isset($form_state['values']['cantidad_metafisica_ejecutado'])) {
     437      $ss1=check_plain($form_state['values']['comentario_metafisica']);
     438      $exe_query = db_query("UPDATE {seguimiento_proyecto} SET ejecutadometafisica = %d, infocomplementaria_metafisica = '%s', acumulativo = %d WHERE id_seg = %d", $form_state['values']['cantidad_metafisica_ejecutado'], $ss1, $es_acumulativo, $consultaseguimientoactual['segmes']['id_seg']);
     439    }
     440    if($form['#op_fields'] == 'comentario_informacionfinanciera' || $form['#op_fields'] == 'full' && isset($form_state['values']['comentario_informacionfinanciera'])) {
     441      $sss=check_plain($form_state['values']['comentario_informacionfinanciera']);
     442      $exe_query = db_query("UPDATE {seguimiento_proyecto} SET infocomplementaria_metafinanciera = '%s', acumulativo = %d WHERE id_seg = %d", $sss, $es_acumulativo, $consultaseguimientoactual['segmes']['id_seg']);
     443    }
    403444    $id_seg = $consultaseguimientoactual['segmes']['id_seg'];
    404   }else{
     445  }
     446  else{
    405447    //insertar
    406     $exe_query = db_query("INSERT INTO {seguimiento_proyecto} (nid, mes, ejecutadometafisica, infocomplementaria_metafisica, infocomplementaria_metafinanciera, fecha, estado, uid) VALUES (%d, %d, %d, '%s', '%s', %d, %d, %d)", $form['#node']->nid, $form['#mes'], $form_state['values']['cantidad_metafisica_ejecutado'], check_plain($form_state['values']['comentario_metafisica']), check_plain($form_state['values']['comentario_informacionfinanciera']), time(), $form['#state_creation'], $user->uid);
    407     $id_seg = db_last_insert_id('seguimiento_proyecto', 'id_seg');
    408    
    409     //construir transicion (creacion) -> ingresado
    410     if (module_exists('workflow')) {
    411       $wid = workflow_get_workflow_for_type('accion_centralizada');
    412       if ($wid) {
    413         $estadoInicialFlujo = _workflow_creation_state($wid);
    414         if($estadoInicialFlujo==$form['#state_creation']){
     448    if (isset($form_state['values']['cantidad_metafisica_ejecutado'])) {
     449      $exe_query = db_query("INSERT INTO {seguimiento_proyecto} (nid, mes, ejecutadometafisica, infocomplementaria_metafisica, fecha, estado, uid, acumulativo) VALUES (%d, %d, %d, '%s', %d, %d, %d, %d)", $form['#node']->nid, $form['#mes'], $form_state['values']['cantidad_metafisica_ejecutado'], check_plain($form_state['values']['comentario_metafisica']), time(), $form['#state_creation'], $user->uid, $es_acumulativo);
     450    }
     451    else {
     452      $exe_query = db_query("INSERT INTO {seguimiento_proyecto} (nid, mes, infocomplementaria_metafinanciera, fecha, estado, uid, acumulativo) VALUES (%d, %d, '%s', '%s', '%s', %d, %d)", $form['#node']->nid, $form['#mes'], check_plain($form_state['values']['comentario_informacionfinanciera']), time(), $form['#state_creation'], $user->uid, $es_acumulativo);
     453    }
     454      $id_seg = db_last_insert_id('seguimiento_proyecto', 'id_seg');
     455      //construir transicion (creacion) -> ingresado
     456      if (module_exists('workflow')) {
     457        $wid = workflow_get_workflow_for_type('proyectos_operativos');
     458        if ($wid) {
     459          $estadoInicialFlujo = _workflow_creation_state($wid);
     460          if($estadoInicialFlujo==$form['#state_creation']){
    415461         
    416           //realizar transicion a ingresado
    417           $transiciones_dispo = _obtener_transiciones_disponibles_proyecto($form['#node'], $form['#mes']);
    418      
    419           foreach($transiciones_dispo['transic'] as $id => $estado_i){
    420             $id_estado=$id;
    421           }
    422    
    423           db_query("INSERT INTO {seguimiento_proyecto_transiciones_estados} (estado, estado_ant, comentario, date, id_seg, uid) VALUES (%d, %d, '%s', %d, %d, %d)", $id_estado, $estadoInicialFlujo, 'Creación del Seguimiento', time(), $id_seg, $user->uid);
    424  
    425           $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", $id_seg);
    426           $seg_transicion_estado = db_fetch_object ( $ultima_id_transicion_seg ) ;
    427  
    428           db_query('UPDATE {seguimiento_proyecto} SET estado = %d, id_seg_transicion_estado = %d WHERE id_seg = %d', $id_estado, $seg_transicion_estado->id, $id_seg);       
    429        
     462            //Siguiente estado
     463            $transitions = workflow_allowable_transitions($estadoInicialFlujo);
     464            unset($transitions[$estadoInicialFlujo]);
     465
     466            db_query("INSERT INTO {seguimiento_proyecto_transiciones_estados} (estado, estado_ant, comentario, date, id_seg, uid) VALUES (%d, %d, '%s', %d, %d, %d)", key($transitions), $estadoInicialFlujo, 'Creación del Seguimiento', time(), $id_seg, $user->uid);
     467 
     468            $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", $id_seg);
     469            $seg_transicion_estado = db_fetch_object($ultima_id_transicion_seg);
     470 
     471            db_query('UPDATE {seguimiento_proyecto} SET estado = %d, id_seg_transicion_estado = %d WHERE id_seg = %d', key($transitions), $seg_transicion_estado->id, $id_seg);       
     472          }     
    430473        }
    431474      }
    432475    }
    433    
    434   }
    435   if (variable_get('proyectos_operativos_muestra_beneficiario', TRUE)) { 
    436     foreach($form['#node']->field_proyecto_beneficiario as $id => $beneficiarios) {
    437       $actualizada=0;
    438       foreach($consultaseguimientoactual['seguimientos_beneficiarios'] as $seg_benef){
    439         if($id == $seg_benef['posicion_beneficiario']){
    440           //actualizar
    441           $exe_query = db_query("UPDATE {seguimiento_proyecto_beneficiarios} SET cant_beneficiarios_mes = %d WHERE id_seg_beneficiario = %d", $form_state['values']['tipobeneficiario_'.$id], $seg_benef['id_seg_beneficiario']);
    442             $actualizada=1;
     476  if (variable_get('proyectos_operativos_muestra_beneficiario', TRUE) && isset($form['comentario_metafisica'])) {
     477    if (isset($form['#node']->field_proyecto_beneficiario)) {
     478      foreach($form['#node']->field_proyecto_beneficiario as $id => $beneficiarios) {
     479        $actualizada=0;
     480        foreach($consultaseguimientoactual['seguimientos_beneficiarios'] as $seg_benef){
     481          if($id == $seg_benef['posicion_beneficiario']){
     482            //actualizar
     483            $exe_query = db_query("UPDATE {seguimiento_proyecto_beneficiarios} SET cant_beneficiarios_mes = %d WHERE id_seg_beneficiario = %d", $form_state['values']['tipobeneficiario_'.$id], $seg_benef['id_seg_beneficiario']);
     484              $actualizada=1;
     485          }
     486        }
     487        if($actualizada==0){//revisar
     488          //insertar
     489          $exe_query = db_query("INSERT INTO {seguimiento_proyecto_beneficiarios} (id_seg, posicion_beneficiario, cant_beneficiarios_mes) VALUES (%d, %d, %d)", $id_seg, $id, $form_state['values']['tipobeneficiario_'.$id]);
    443490        }
    444491      }
    445       if($actualizada==0){//revisar
    446         //insertar
    447         $exe_query = db_query("INSERT INTO {seguimiento_proyecto_beneficiarios} (id_seg, posicion_beneficiario, cant_beneficiarios_mes) VALUES (%d, %d, %d)", $id_seg, $id, $form_state['values']['tipobeneficiario_'.$id]);
    448       }
    449492    }
    450493  }
     
    452495  if ($exe_query == true) {
    453496   
    454     $meses = array(
    455       0 => t('January'),
    456       1 => t('February'),
    457       2 => t('March'),
    458       3 => t('April'),
    459       4 => t('May'),
    460       5 => t('June'),
    461       6 => t('July'),
    462       7 => t('August'),
    463       8 => t('September'),
    464       9 => t('Octuber'),
    465       10 => t('November'),
    466       11 => t('December'),
    467     );
     497    $meses = json_decode(MESES);
    468498   
    469499    $mes =$form['#mes'];
    470500    drupal_set_message(t('Se ha guardado el seguimiento del mes de ').strval($meses[$mes]).' para el proyecto operativo.');
    471501  }
    472   $form_state['redirect'] = 'node/' . $form['#node']->nid . '/fase_de_seguimiento_proyecto_y_aes/mes/'.$mes;
     502  if (!$_REQUEST['destination']) {
     503    $form_state['redirect'] = 'proyectosop/' . $form['#node']->nid . '/seguimiento/proyecto';
     504  }
    473505}
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.