Conjunto 5e53f1d en sipes


Ignorar:
Fecha y hora:
09/03/2017 15:44:29 (hace 7 años)
Autor:
Cenditel <root@…>
Branches:
version-3.0
Children:
0c18e68
Parents:
23a1098
Mensaje:

se aplicaron los nuevos ajustes

Fichero:
1 editado

Leyenda

No modificado
Añadido
Eliminado
  • 0.3-modules/proyectos_reformulacion/proyectos_reformulacion.module

    reaca1bf r5e53f1d  
    2323  * @date 2013-04-11 // (a&#241;o-mes-dia)
    2424  * @version 0.1 // (0.1)
     25  * Modificado por: PHD. Juan Vizcarrondo @date 2017-02-15.
    2526  *
    2627  */
     
    4849  $datos_proyectos_reformulacion_status = array();
    4950  //si existe al menos una reformulacion en estado aprobado la reformulacion se puede considerar terminado
    50   $reformular = FALSE;
    51   $year = variable_get('proyectos_operativos_anho_creacion', 0);
    52   $estado_naprobado = variable_get('proyectos_operativos_state_naprobado', NULL);;
     51  $reformulacion = FALSE;
     52  $year = variable_get('proyectos_reformulacion_anho', 0);
     53  $estado_naprobado = variable_get('proyectos_reformulacion_state_naprobado', NULL);;
    5354  $result = db_query('SELECT COUNT(re.id_ref) AS cantidad FROM {proyectos_reformular} AS re INNER JOIN {users} AS u ON u.uid = re.uid INNER JOIN {proyectos_operativos} AS po ON po.nid = re.nid WHERE re.nid = %d AND estado <> %d AND po.year = %d', $ente_planificador, $estado_naprobado, $year);
    54   $reformular = db_fetch_object($result);
    55   $reformular = $reformular->cantidad;
    56   $datos_proyectos_reformulacion_status['proyectos_operativos_reformular']['value'] = ($reformular)  ? 1 : 0;
     55  $reformulacion = db_fetch_object($result);
     56  $datos_proyectos_reformulacion_status['proyectos_operativos_reformular']['value'] = ($reformulacion->cantidad)  ? 1 : 0;
    5757  $datos_proyectos_reformulacion_status['proyectos_operativos_reformular']['title'] = t('Reformulaciones para el año @year', array('@year' => $year));
    5858  $datos_proyectos_reformulacion_status['proyectos_operativos_reformular']['link'] = 'proyectos_operativos';
     
    272272        );
    273273        $output = '';
    274 
    275274        //financiamiento
    276275        $arreglo_financiamiento = array();
    277         $accion_especifica_number_fields = variable_get('accion_especifica_number_fields', 4);
     276        $accion_especifica_number_fields = variable_get('proyectos_reformulacion_ae_number_fields', 4);
    278277        for($i = 0; $i < $accion_especifica_number_fields; $i++) {
    279           $arreglo_financiamiento['financiamiento_' . $i] = variable_get('accion_especifica_financiamiento_label_' . $i, '') ? variable_get('accion_especifica_financiamiento_label_' . $i, '') : '';
    280           $arreglo_financiamiento_fields['financiamiento_' . $i] = variable_get('accion_especifica_financiamiento_options_' . $i, array());
     278          $arreglo_financiamiento['financiamiento_' . $i] = variable_get('proyectos_reformulacion_ae_financiamiento_label_' . $i, '') ? variable_get('proyectos_reformulacion_ae_financiamiento_label_' . $i, '') : '';
     279          $arreglo_financiamiento_fields['financiamiento_' . $i] = variable_get('proyectos_reformulacion_ae_financiamiento_options_' . $i, array());
    281280        }
    282 /*
    283 
    284         $arreglo = array();
    285         $titles = array(
    286           'ordinarios' => t('Recursos Ordinarios'),
    287           'propios' => t('Recursos Propios'),
    288           'transferencias' => t('Donaciones'),
    289           'otros' => t('Otros'),
    290         );
    291         $titles_field = array(
    292           'field_accion_esp_transferencias' => t('Recursos Ordinarios'),
    293           'field_accion_esp_creditosa' => t('Recursos Propios'),
    294           'transferencias' => t('Donaciones'),
    295           'otros' => t('Otros'),
    296         );
    297         $arreglo['ordinarios'] = array(
    298           'field_accion_esp_transferencias' => 'field_accion_esp_transferencias',
    299           'field_accion_esp_creditosa' => 'field_accion_esp_creditosa',
    300           'field_accion_esp_mcti' => 'field_accion_esp_mcti',
    301         );
    302         $arreglo['propios'] = array(
    303           'field_accion_esp_venta_act' => 'field_accion_esp_venta_act',
    304           'field_accion_esp_activos' => 'field_accion_esp_activos',
    305           'field_accion_esp_flujocaja' => 'field_accion_esp_flujocaja',
    306           'field_accion_esp_ventapro' => 'field_accion_esp_ventapro',
    307         );
    308         $arreglo['transferencias'] = array(
    309           'field_accion_esp_donaciones' => 'field_accion_esp_donaciones',
    310         );
    311         $arreglo['otros'] = array(
    312           'field_accion_esp_gobernacion' => 'field_accion_esp_gobernacion',
    313           'field_accion_esp_misionc' => 'field_accion_esp_misionc',
    314           'field_accion_esp_bid_fona' => 'field_accion_esp_bid_fona',
    315           'field_accion_esp_fonacit' => 'field_accion_esp_fonacit',
    316           'field_accion_esp_fonden' => 'field_accion_esp_fonden',
    317           'field_accion_esp_locti' => 'field_accion_esp_locti',
    318           'field_accion_esp_fondoidi' => 'field_accion_esp_fondoidi',
    319           'field_accion_esp_capitalrie' => 'field_accion_esp_capitalrie',
    320           'field_accion_esp_infocentro' => 'field_accion_esp_infocentro',
    321           'field_accion_esp_fidetel' => 'field_accion_esp_fidetel',
    322         );
    323 */
    324281        $rows = array();
    325282        $row = array();
     
    378335        $node->proyecto_asignado = $proyecto;
    379336        $node->variaciones = $proyecto->variaciones;
    380 
    381 
    382337      }
    383338      elseif ($node->type == 'proyectos_operativos'){
     
    389344  }
    390345}
    391 
    392346
    393347/*
     
    434388    }
    435389  }
    436   $states = array();
    437   if ($form_id == 'proyectos_operativos_admin_settings') {
    438     if (module_exists('workflow')) {
    439       $wid = workflow_get_workflow_for_type('proyectos_operativos');
    440       if ($wid){
    441         $states = workflow_get_states($wid);
    442         $rids = user_roles();
    443         $rids['-1'] = t('author');
    444         if (count($states)) {
    445           foreach ($states as $sid => $state) {
    446             $form['workflow']['proyectos_operativos_state_r_' . $sid] = array(
    447               '#type' => 'checkboxes',
    448               '#options' => $rids,
    449               '#default_value' => variable_get('proyectos_operativos_state_r_' . $sid, array()),
    450               '#title' => t('Roles que pueden editar las reformulaciones de los Proyectos Operativos'),
    451               '#multiple' => TRUE,
    452               '#prefix' => '<table width="100%" style="border: 0;"><tbody style="border: 0;"><tr><th colspan="3">' . t('State: @state', array('@state' => $state)) . '</th></tr><tr><td>',
    453               '#suffix' => "</td></tr></tbody></table>",
    454             );
    455           }
    456         }
    457       }
    458     }
    459   }
    460   if (count($states)) {
    461     $form['workflow']['proyectos_operativos_state_reformulacion'] = array(
    462       '#title' => t('Seleccione el estado de inicio cuando se añada una reformulación'),
    463       '#type' => 'select',
    464       '#default_value' => variable_get('proyectos_operativos_state_reformulacion', 0),
    465       '#options' => $states,
    466       '#weight' => -6,
    467     );
    468   }
    469 }
    470 
     390}
    471391
    472392/**
     
    479399
    480400/**
     401 * Menu access control callback. Determine access to reformula tab.
     402 */
     403function _proyectos_reformulacion_ver_reformula_node_tab_access($node = NULL, $reformulacion = 0) {
     404  $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
     405  return ($reformulacion['id_ref'] && $node->type == 'proyectos_operativos' && $node->_workflow == $estado_aprobado);
     406}
     407
     408/**
    481409 * Menu access control callback. Determine access to reformulacion tab.
    482410 */
    483411function _proyectos_reformulacion_reformula_node_add_tab_access($node = NULL) {
    484412  global $user;
    485   $year = variable_get('proyectos_operativos_anho_creacion', 0);
     413  $year = variable_get('proyectos_reformulacion_anho', 0);
    486414  $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
    487415  if ($node->type != 'proyectos_operativos' || $node->anhoproyectos_operativos != $year) {
     
    494422  $current_time = time();
    495423  $tipo_plan = 'proyectos_operativos_reformular';
    496   $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
     424  $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador);
    497425  $fecha = FALSE;
    498426  $ente = usuario_tiene_ente($user->uid);
     
    511439    return FALSE;
    512440  }
    513   $roles_allow = variable_get('proyectos_operativos_state_r_1', array());
    514   $estado_naprobado = variable_get('proyectos_operativos_state_naprobado', NULL);
    515   $result = db_query("SELECT count(ar.id_ref) AS cantidad FROM {proyectos_operativos} AS ac INNER JOIN {proyectos_reformular} AS ar ON ar.nid = ac.nid WHERE (ar.estado <> %d AND ar.estado <> %d) AND ac.ente = %d AND ac.year = %d and ac.nid = %d", $estado_aprobado, $estado_naprobado, $node->field_proyecto_ente[0]['nid'], $year, $node->nid);
    516   $proyecto = db_fetch_array($result);
    517   $roles = array_keys($user->roles);
    518   if (count($roles)) {
    519     foreach($roles as $rol) {
    520       if($roles_allow[$rol]) {
    521         return TRUE && !$proyecto['cantidad'];
    522       }
    523     }
    524   }
    525   return ($proyecto && !$proyecto['cantidad'] && $user->uid == 1);
     441  if (module_exists('workflow')) {
     442    $first = variable_get('proyectos_reformulacion_state_reformulacion', 0);
     443    $roles_allow = variable_get('proyectos_reformulacion_state_r_' . $first, array());
     444   // print_r($roles_allow);
     445    $estado_naprobado = variable_get('proyectos_reformulacion_state_naprobado', NULL);
     446    $estado_aprobador = variable_get('proyectos_reformulacion_state_aprobado', NULL);
     447    $result = db_query("SELECT count(ar.id_ref) AS cantidad FROM {proyectos_operativos} AS ac INNER JOIN {proyectos_reformular} AS ar ON ar.nid = ac.nid WHERE (ar.estado <> %d AND ar.estado <> %d) AND ac.ente = %d AND ac.year = %d and ac.nid = %d", $estado_aprobador, $estado_naprobado, $node->field_proyecto_ente[0]['nid'], $year, $node->nid);
     448    $proyecto = db_fetch_array($result);
     449    $roles = array_keys($user->roles);
     450    if (count($roles)) {
     451      foreach($roles as $rol) {
     452        if($roles_allow[$rol]) {
     453          return TRUE && !$proyecto['cantidad'];
     454        }
     455      }
     456    }
     457  }
     458  return ($proyecto && !$proyecto['cantidad'] && user_access('admin planificador'));
    526459}
    527460
     
    531464function _proyectos_reformulacion_reformula_node_edit_tab_access($node = NULL, $reformulacion) {
    532465  global $user;
    533   $year = variable_get('proyectos_operativos_anho_creacion', 0);
     466  $year = variable_get('proyectos_reformulacion_anho', 0);
    534467  $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
    535468  if ($node->type != 'proyectos_operativos' || $node->anhoproyectos_operativos != $year) {
     
    539472    return FALSE;
    540473  }
    541   if ($estado_aprobado && $reformulacion->estado == $estado_aprobado) {
     474  $estado_aprobador = variable_get('proyectos_reformulacion_state_aprobado', NULL);
     475  if ($estado_aprobado && $reformulacion['estado'] == $estado_aprobador) {
    542476    return FALSE;
    543477  }
    544   $ente_planificador = node_load($node->field_proyecto_ente[0]['nid']);
     478  $ente_planificador = ente_planificador_leer_ente_planificadores($node->field_proyecto_ente[0]['nid']);
     479  if (!$ente_planificador || !$ente_planificador->nid) {
     480    return FALSE;
     481  }
    545482  $current_time = time();
    546483  $tipo_plan = 'proyectos_operativos_reformular';
    547   $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
     484  $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador);
    548485  $fecha = FALSE;
    549486  $ente = usuario_tiene_ente($user->uid);
     
    555492      $fecha = TRUE;
    556493    }
     494    elseif (module_exists('ente_planificador_hierarchical')) {
     495      $fathers = module_exists('ente_planificador_hierarchical') ? _ente_planificador_hierarchical_get_descbyid($ente_planificador->nid, 1) : array();
     496      if (isset($fathers[$ente->nid])) {
     497        $fecha = TRUE;
     498      }
     499    }
    557500    elseif (!user_access('admin planificador')) {
    558501      return FALSE;
     
    562505    return FALSE;
    563506  }
    564   $roles_allow = variable_get('proyectos_operativos_state_r_' . $reformulacion->estado, array());
    565   if ($user->uid == 1 || ($user->uid == $reformulacion->uid && $roles_allow[-1])) {
     507  $roles_allow = variable_get('proyectos_reformulacion_state_r_' . $reformulacion['estado'], array());
     508  if ($user->uid == 1 || ($user->uid == $reformulacion['uid'] && $roles_allow[-1])) {
    566509    return TRUE;
    567510  }
     
    577520}
    578521
    579 
    580522/**
    581  * Implementation of proyectos_reformulacion_menu_reformulacion_load().
     523 * Implementation of proyectosop_reformulacion_load().
    582524 * Menu loader callback. Load a mes.
    583525 */
    584 function proyectosop_menu_reformulacion_load($id_ref = 0, $node = 0) {
    585   $reformula = FALSE;
    586   $nodo = $node ? $node->nid : arg(1);
    587   if ($id_ref && is_numeric($nodo)) {
    588     $result = db_query("SELECT * FROM {proyectos_reformular} WHERE nid = %d AND id_ref = %d", $nodo, $id_ref);
    589     $reformula = db_fetch_object($result);
    590   }
    591   return $reformula;
    592 }
    593 
    594 /**
    595  * Implementation of accionesp_menu_r_load().
    596  * Devuelve la accion especifica.
    597  */
    598 function accionesp_menu_r_load($nid) {
    599   $ae = FALSE;
    600   if ($nid && arg(1) && is_numeric(arg(1))) {
    601     $ae = node_load($nid);
    602     if ($ae->type != 'accion_especifica' || $ae->field_accion_esp_proyecto[0]['nid'] != arg(1)) {
    603       return FALSE;
    604     }
    605   }
    606   return $ae;
    607 }
    608 
    609 /*
    610  * Implementation of proyectos_reformulacion_wk_menu_load()
    611  */
    612 function proyectos_reformulacion_wk_menu_load($state = 0) {
    613   $states = _proyectos_operativos_reformulacion_obtiene_estados();
    614   if (isset($states['states'][$state])) {
    615     return $state;
    616   }
    617   return FALSE;
     526function proyectosop_reformulacion_load($id_ref = 0) {
     527  $result = db_query("SELECT * FROM {proyectos_reformular} WHERE id_ref = %d", $id_ref);
     528  $reformulacion = db_fetch_array($result);
     529  $reformulacion['total'] = $reformulacion['variacion'];
     530  if ($reformulacion) {
     531    $sql = "SELECT * FROM {proyectos_reformula} WHERE nid = %d";
     532    $sql1 = "SELECT * FROM {proyectos_reformula_fuente} WHERE nid = %d";
     533    $inputs[] = $reformulacion['nid'];
     534    $sql .= ' AND id_ref = %d';
     535    $sql1 .= ' AND id_ref = %d';
     536    $inputs[] = $reformulacion['id_ref'];
     537    $result = db_query($sql, $inputs);
     538    while($partida = db_fetch_array($result)) {
     539      $reformulacion[$partida['field_name']][$partida['partida']] = $partida;
     540    }
     541    $result = db_query($sql1, $inputs);
     542    while($partida = db_fetch_array($result)) {
     543      $reformulacion[$partida['field_name']][0] = $partida;
     544    }
     545  }
     546  return $reformulacion;
    618547}
    619548
     
    621550 * Menu access control callback. Determine access to wk tab.
    622551 */
    623 function _proyectos_reformulacion_reformula_wk_node_tab_access($node = NULL, $reformulacion, $state = 0) {
     552function _proyectos_reformulacion_reformula_wk_node_tab_access($node = NULL, $reformulacion = 0) {
    624553  global $user;
    625   $id_ref = $reformulacion_load ? $reformulacion_load->id_ref : 0;
    626   $reformula = _proyectos_reformulacion_load($node, $id_ref);
    627   $suma_r_ae = total_reformulado_ae($node, $reformula);
    628   if ($suma_r_ae != $reformulacion_load->variacion) {
     554  $suma_r_ae = total_reformulado_ae($node, $reformulacion);
     555  if ($suma_r_ae != $reformulacion['variacion']) {
    629556    return FALSE;
    630557  }
    631   $year = variable_get('proyectos_operativos_anho_creacion', 0);
     558  $year = variable_get('proyectos_reformulacion_anho', 0);
    632559  $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
    633560  if ($node->type != 'proyectos_operativos' || $node->anhoproyectos_operativos != $year) {
     
    639566  $ente = usuario_tiene_ente($user->uid);
    640567  $ente_planificador = node_load($node->field_proyecto_ente[0]['nid']);
    641   if ($ente->nid != $ente_planificador->nid && !user_access('admin planificador')) {
     568  $fathers = module_exists('ente_planificador_hierarchical') ? _ente_planificador_hierarchical_get_descbyid($ente_planificador->nid, 1) : array();
     569  if ($ente->nid != $ente_planificador->nid && !isset($fathers[$ente->nid]) && !user_access('admin planificador')) {
    642570    return FALSE;
    643571  }
    644   $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
    645   $estado_naprobado = variable_get('proyectos_operativos_state_naprobado', NULL);
    646   if ($reformulacion->estado == $estado_naprobado || $reformulacion->estado == $estado_aprobado) {
    647     return FALSE;
    648   }
     572  return $reformulacion['id_ref'] && ($reformulacion['estado'] != variable_get('proyectos_reformulacion_state_naprobado', NULL));
     573}
     574
     575/*
     576 * Implementation of proyectos_reformulacion_reformula_wk_tab_page {
     577 */
     578function proyectos_reformulacion_reformula_wk_tab_page($node, $reformulacion = 0) {
     579  global $user;
     580  //add breadcrumb
     581  $breadcrumb = array();
     582  $breadcrumb[] = l(t('Home'), '<front>');
     583  $breadcrumb[] = l(t('Proyectos Operativos'), 'proyectos_operativos');
     584  if ($node->nid) {
     585    $breadcrumb[] = l(check_plain($node->title), 'proyectosop/' . $node->nid);
     586    $breadcrumb[] = l(t('Reformulaciones'), 'proyectosop/' . $node->nid . '/reformular');
     587    if ($reformulacion['id_ref']){
     588      $breadcrumb[] = l(check_plain('Reform-' . $reformulacion['id_ref']), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/view');
     589      $breadcrumb[] = t('Workflow');
     590    }
     591  }
     592  drupal_set_breadcrumb($breadcrumb);
     593  $ente_planificador = node_load($node->field_proyecto_ente[0]['nid']);
     594  $format_number = array(
     595    'decimals' => variable_get('proyectos_operativos_number_decimals', 0),
     596    'dec_point' => variable_get('proyectos_operativos_number_dec_point', ','),
     597    'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'),
     598  );
     599  $id_ref = $reformulacion['id_ref'];
     600  $variaciones = _proyectos_reformula_all_partidas_load($node, $id_ref);
     601  $varia = isset($variaciones['total']) ? $variaciones['total'] : 0;
     602  $min = $node->field_proyecto_monto_anual[0]['value'] + $varia;
     603  $valor = isset($reformulacion['total'])? $reformulacion['total'] : 0;
     604  $total_accion = $min;
     605  $output = '';
     606  $output .= '<fieldset><legend>' . t('Resumen del Proyecto') . '</legend>';
     607  $output .= '<div class="field"><div class="field-label">' . t('Código Único del Proyecto') . ':</div>' . $node->field_proyecto_codigo[0]['value'] . '</div>';
     608  $output .= '<div class="field"><div class="field-label">' . t('Nombre del Proyecto') . ':</div>' . $node->titulo_asignado . '</div>';
     609  $output .= '<div class="field"><div class="field-label">' . t('Organismo') . ':</div>' . $ente_planificador->title . '</div>';
     610  $output .= '</fieldset>';
     611  $output .= '<fieldset><legend>' . t('Monto Total del Proyecto') . '</legend>';
     612  $rows = array();
     613  $row = array();
     614  $row[] = array('data' => '<b>' . t('Monto Total del Proyecto para el año en curso: %monto', array('%monto' => number_format($total_accion, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))) . '</b>', 'colspan' => 2, 'align' => center);
     615  $rows[] = $row;
     616  $row = array();
     617  $signo = '';
     618  if ($reformulacion['variacion'] > 0) {
     619    $signo = '+';
     620  }
     621  $row[] = array('data' => t('Variación Presupuestaria: %variacion', array('%variacion' => $signo . number_format($reformulacion['variacion'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))), );
     622  $row[] = array('data' => t('Monto Total Reformulación: %totalreformulacion', array('%totalreformulacion' => number_format($reformulacion['variacion'] + $total_accion, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))), );
     623  $rows[] = $row;
     624  $row = array();
     625  $colspan = 2;
     626  if (variable_get('proyectos_reformulacion_onapre', 0)) {
     627    $colspan--;
     628    $row[] = array('data' => t('<b>Fecha de Aprobación:</b> %fecha_onapre', array('%fecha_onapre' => date( 'd/m/Y', $reformulacion['fecha_onapre']))), 'align' => 'left');
     629  }
     630  $row[] = array('data' => t('<b>Justificación:</b> %justificacion', array('%justificacion' => $reformulacion['justificacion'])), 'align' => 'left', 'colspan' => $colspan);
     631  $rows[] = $row;
     632  $output .= theme('table', array(), $rows) . '</fieldset>';
     633  $output .= '<fieldset><legend>' . t('Datos de la Reformulación') . '</legend>';
     634  $states = array();
     635  if (module_exists('workflow')) {
     636    $states = _proyectos_operativos_reformulacion_obtiene_estados();
     637    $header = array();
     638    $header[] = array('data' => t('Fecha'),);
     639    $header[] = array('data' => t('Estado'),);
     640    $header[] = array('data' => t('Estado anterior'),);
     641    $header[] = array('data' => t('Comentario'),);
     642    $header[] = array('data' => t('Usuario'),);
     643    $rows = array();
     644    $result = db_query('SELECT re.*, u.name, u.uid FROM {proyectos_reformular_state} re INNER JOIN {users} u ON u.uid = re.uid WHERE nid = %d AND id_ref = %d ORDER BY date DESC', $node->nid, $id_ref);
     645    while($history = db_fetch_object($result)) {
     646      $row = array();
     647      $row[] = array('data' => format_date($history->date),);
     648      $row[] = array('data' => $states['states'][$history->estado],);
     649      $row[] = array('data' => $states['states'][$history->estado_ant],);
     650      $row[] = array('data' => $history->comentario,);
     651      $row[] = array('data' => l($history->name, 'user/' . $history->uid),);
     652      $rows[] = $row;
     653    }
     654    if (count($rows)) {
     655      $output .= '<div class="field"><div class="field-label">' . t('Historial') . ':</div>' . theme('table', $header, $rows) . '</div>';     
     656    }
     657    else {
     658      $output .= '<div class="field"><div class="field-label">' . t('Historial') . ':</div>' . t('No existe historial para esta reformulación') . '</div>';     
     659    }
     660  }
     661  $output .= '</fieldset>';
    649662  $states = _proyectos_operativos_reformulacion_obtiene_estados();
    650663  $first_state = 0;
    651   if ($states['wid']) {
    652     $first_state = _workflow_creation_state($states['wid']);
    653   }
     664  $transitions = array();
    654665  $roles = array_keys($user->roles);
    655666  if ($user->uid == 1) {
     
    659670  else {
    660671    $roles_transition = $roles;
    661     if ($user->uid == $reformulacion->uid && $reformulacion->uid > 0) {
     672    if ($user->uid == $reformulacion['uid'] && $reformulacion['uid'] > 0) {
    662673      $roles_transition += array('author' => 'author');
    663674    }
    664675  }
    665   $transitions = array();
    666676  if ($states['wid']) {
    667     $transitions = workflow_allowable_transitions($reformulacion->estado, 'to', $roles_transition);
    668   }
    669   if ($first_state && $reformulacion->estado == $first_state) {
    670     unset($transitions[$reformulacion->estado]);
    671   }
    672   if (isset($transitions[$state])) {
    673     return TRUE;
    674   }
    675   return FALSE;
    676 }
    677 
     677    $first_state = _workflow_creation_state($states['wid']);
     678    $transitions = workflow_allowable_transitions($reformulacion['estado'], 'to', $roles_transition);
    678679/*
    679  * Implementation of proyectos_reformulacion_reformula_wk_tab_page_form()
    680  */
    681 function proyectos_reformulacion_reformula_wk_tab_page_form($form_state, $node, $reformulacion_load = 0, $state = 0) {
    682   $estados = _proyectos_operativos_reformulacion_obtiene_estados();
     680    if ($first_state && $reformulacion['estado'] == $first_state) {
     681      unset($transitions[$reformulacion['estado']]);
     682    }
     683*/
     684    unset($transitions[$reformulacion['estado']]);
     685  }
     686  //excluir los estados de mayor nivel al ente planificador que posee el usuario
     687  $hierarchical = variable_get('ente_planificador_hierarchical_count', 2);
     688  for ($i = 1; $i < $hierarchical + 1; $i++) {
     689    if ($ente_planificador->tipo != $i) {
     690      $estado = variable_get('proyectos_reformulacion_state_form_' . $i, 0);
     691      if (isset($transitions[$estado])) {
     692        unset($transitions[$estado]);
     693      }
     694    }
     695  }
     696  //aplicar prefijos segun la configuración del modulo
     697  if (sizeof($transitions)) {
     698    $current = $consultaseguimientoactual['segmes']['estado'];
     699    foreach ($transitions as $sid => $state) {
     700      if (variable_get('proyectos_reformulacion_state_d_' . $reformulacion['estado'] . '_' . $sid, FALSE)) {
     701        $transitions[$sid] = t(variable_get('proyectos_reformulacion_state_tdevueltos', 'Devuelto a @state'), array('@state' => $transitions[$sid]));
     702      }
     703      else {
     704        $transitions[$sid] = t(variable_get('proyectos_reformulacion_state_tndevueltos', 'Enviado a @state'), array('@state' => $transitions[$sid]));
     705      }
     706    }
     707
     708    $output .= drupal_get_form('proyectos_reformulacion_reformula_wk_tab_page_form', $node, $reformulacion, $transitions);
     709  }
     710  return $output;
     711}
     712
     713/*
     714 * Implementation of proyectos_reformulacion_reformula_wk_tab_page_form
     715 */
     716function proyectos_reformulacion_reformula_wk_tab_page_form($form_state, $node, $reformulacion = 0, $states = 0) {
    683717  $form = array();
    684718  $form['#node'] = $node;
    685   $form['#nuevo_estado'] = $state;
    686   $form['#estados'] = $estados['states'];
    687   $form['#reformulacion'] = $reformulacion_load;
     719  $form['#state'] = $states;
     720  $form['#estado_actual'] = $reformulacion['estado'];
     721  $form['#nombre_estado'] = _proyectos_operativos_reformulacion_obtiene_estados();
     722  $form['#reformulacion'] = $reformulacion;
     723  if (sizeof($states) == 1) {
     724    $form['prox_estado'] = array(
     725      '#type' => 'hidden',
     726      '#value' => key($states),
     727      '#required' => TRUE,
     728    );
     729  }
     730  else {
     731    $form['prox_estado'] = array(
     732      '#type' => 'radios',
     733      '#title' => 'Cambiar al Estado',
     734      '#options' => $states,
     735      '#default_value' => $form['#estado_actual'],
     736      '#required' => TRUE,
     737    );
     738  }
    688739  $form['comentario'] = array(
    689740    '#title' => t('Comentario'),
     
    691742    '#default_value' => '',
    692743  );
    693   $message = t('Esta seguro de cambiar la reformulación al estado %nombre_estado?', array('%nombre_estado' => $estados['states'][$state]));
     744  $message = t('Esta seguro de cambiar la reformulación del estado "%nombre_estado"?', array('%nombre_estado' => $form['#nombre_estado']['states'][$form['#estado_actual']]));
    694745  $caption = '<p>'. t('This action cannot be undone.') .'</p>';
    695   $return_path = 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion_load->id_ref . '/view';
     746  $return_path = 'proyectosop/' . $node->nid . '/reformular/' . $form['#reformulacion']['id_ref'] . '/view';
    696747  return confirm_form($form, $message, $return_path, $caption, t('Cambiar'));
    697748  return $form;
    698749}
     750
     751
     752/**
     753 * Implementation of proyectos_reformulacion_reformula_wk_tab_page_form_validate.
     754 * valida si el estado se devuelve se debe ingresar un comentario.$form['#estado_actual']
     755variable_get('proyectos_reformulacion_state_d_' . $form['#estado_actual'] . '_' . $new_state, FALSE)
     756 */
     757function proyectos_reformulacion_reformula_wk_tab_page_form_validate($form, &$form_state) {
     758  $new_state = $form_state['values']['prox_estado'];
     759  if (variable_get('proyectos_reformulacion_state_d_' . $form['#estado_actual'] . '_' . $new_state, FALSE) && trim($form_state['values']['comentario'] == '')) {
     760    form_set_error('comentario', t('Debe ingresar el motivo por el que se regresa el proyecto'));
     761  }
     762}
     763
     764
    699765
    700766/**
     
    704770function proyectos_reformulacion_reformula_wk_tab_page_form_submit($form, &$form_state) {
    705771  global $user;
    706   $nuevo_estado = $form['#datos_institucionales_funcion'];
    707   db_query('UPDATE {proyectos_reformular} SET estado = %d, estado_ant = %d WHERE nid = %d AND id_ref = %d', $form['#nuevo_estado'], $form['#reformulacion']->estado, $form['#node']->nid, $form['#reformulacion']->id_ref);
    708   db_query("INSERT INTO {proyectos_reformular_state} (nid, estado, estado_ant, comentario, date, id_ref, uid) VALUES (%d, %d, %d, '%s', %d, %d, %d)", $form['#node']->nid, $form['#nuevo_estado'], $form['#reformulacion']->estado, check_plain($form_state['values']['comentario']), time(), $form['#reformulacion']->id_ref, $user->uid);
    709   drupal_set_message(t('La reformulación fue cambiada al estado @nombre_estado', array('@nombre_estado' => $form['#estados'][$form['#nuevo_estado']])));
    710   $form_state['redirect'] = 'proyectosop/' . $form['#node']->nid . '/reformular/' . $form['#reformulacion']->id_ref . '/view';
     772  $time = time();
     773  if (variable_get('proyectos_reformulacion_onapre', 0) && ($form_state['values']['prox_estado'] == variable_get('proyectos_reformulacion_state_aprobado', NULL))) {
     774    db_query('UPDATE {proyectos_reformular} SET estado = %d, estado_ant = %d, fecha_onapre = %d WHERE nid = %d AND id_ref = %d', $form_state['values']['prox_estado'], $form['#reformulacion']['estado'], $time, $form['#node']->nid, $form['#reformulacion']['id_ref']);
     775  }
     776  else {
     777    db_query('UPDATE {proyectos_reformular} SET estado = %d, estado_ant = %d WHERE nid = %d AND id_ref = %d', $form_state['values']['prox_estado'], $form['#reformulacion']['estado'], $form['#node']->nid, $form['#reformulacion']['id_ref']);
     778  }
     779  db_query("INSERT INTO {proyectos_reformular_state} (nid, estado, estado_ant, comentario, date, id_ref, uid) VALUES (%d, %d, %d, '%s', %d, %d, %d)", $form['#node']->nid, $form_state['values']['prox_estado'], $form['#reformulacion']['estado'], check_plain($form_state['values']['comentario']), $time, $form['#reformulacion']['id_ref'], $user->uid);
     780  drupal_set_message(t('La reformulación fue cambiada del estado @prev_estado al estado @nombre_estado', array('@nombre_estado' => $form['#nombre_estado']['states'][$form_state['values']['prox_estado']], '' => $form['#nombre_estado']['states'][$form['#reformulacion']['estado']])));
     781  $form_state['redirect'] = 'proyectosop/' . $form['#node']->nid . '/reformular/' . $form['#reformulacion']['id_ref'] . '/view';
    711782}
    712783
     
    739810    'weight' => 2,
    740811  );
    741   $items['proyectosop/%proyectosop/reformular/%proyectosop_menu_reformulacion/view'] = array(
     812  $items['proyectosop/%proyectosop/reformular/%proyectosop_reformulacion/view'] = array(
    742813    'title' => 'Ver reformulación',
    743814    'type' => MENU_LOCAL_TASK,
    744     'access callback' => '_proyectos_reformulacion_reformula_node_tab_access',
    745     'access arguments' => array(1),
     815    'access callback' => '_proyectos_reformulacion_ver_reformula_node_tab_access',
     816    'access arguments' => array(1, 3),
    746817    'page callback' => '_proyectos_reformulacion_reformula_tab_page_ver',
    747818    'page arguments' => array(1, 3),
    748819    'weight' => 2,
    749820  );
    750   $items['proyectosop/%proyectosop/reformular/%proyectosop_menu_reformulacion/edit'] = array(
     821  $items['proyectosop/%proyectosop/reformular/%proyectosop_reformulacion/edit'] = array(
    751822    'title' => 'Editar',
    752823    'type' => MENU_LOCAL_TASK,
     
    757828    'weight' => 3,
    758829  );
    759   $items['proyectosop/%proyectosop/reformular/%proyectosop_menu_reformulacion/ae/%accionesp_menu_r'] = array(
     830  $items['proyectosop/%proyectosop/reformular/%proyectosop_reformulacion/ae/%accion_especifical'] = array(
    760831    'title' => 'Acciones Especificas',
    761832    'type' => MENU_LOCAL_TASK,
     
    766837    'weight' => 2,
    767838  );
    768   $items['proyectosop/%proyectosop/reformular/%proyectosop_menu_reformulacion/ae/%accionesp_menu_r/edit'] = array(
     839  $items['proyectosop/%proyectosop/reformular/%proyectosop_reformulacion/ae/%accion_especifical/edit'] = array(
    769840    'title' => 'Editar AEs',
    770841    'type' => MENU_LOCAL_TASK,
     
    775846    'weight' => 3,
    776847  );
    777   $items['proyectosop/%node/reformular/%proyectosop_menu_reformulacion/workflow/%proyectos_reformulacion_wk_menu'] = array(
    778     'title' => 'Workflow',
     848  $items['proyectosop/%proyectosop/reformular/%proyectosop_reformulacion/workflow'] = array(
     849    'title' => 'Enviar Reformulación',
    779850    'type' => MENU_LOCAL_TASK,
    780851    'access callback' => '_proyectos_reformulacion_reformula_wk_node_tab_access',
    781     'access arguments' => array(1, 3, 5),
     852    'access arguments' => array(1, 3),
     853    'page callback' => 'proyectos_reformulacion_reformula_wk_tab_page',
     854    'page arguments' => array(1, 3),
     855    'weight' => 3,
     856  );
     857  $items['admin/settings/ente_planificador/proyectos_operativos/reformular'] = array(
     858    'title' => t('Reformulaciones'),
    782859    'page callback' => 'drupal_get_form',
    783     'page arguments' => array('proyectos_reformulacion_reformula_wk_tab_page_form', 1, 3, 5),
    784     'weight' => 3,
     860    'page arguments' => array('proyectos_reformulacion_admin_settings'),
     861    'access arguments' => array('admin planificador'),
     862    'weight' => -5,
     863    'type' => MENU_LOCAL_TASK,
     864    'file' => 'proyectos_reformulacion.admin.inc',
    785865  );
    786866  return $items;
     
    804884 * Implementation of proyectos_reformulacion_reformula_tab_page_form()
    805885 */
    806 function proyectos_reformulacion_reformula_tab_page_form($form_state, $node, $reformulacion_load = 0) {
    807   $title = $reformulacion_load ? t('Modificar Reformulación') : t('Agregar Reformulación al Proyecto');
     886function proyectos_reformulacion_reformula_tab_page_form($form_state, $node, $reformulacion = 0) {
     887  $title = $reformulacion ? t('Modificar Reformulación') : t('Agregar Reformulación al Proyecto');
    808888  drupal_set_title($title);
    809   $id_ref = $reformulacion_load ? $reformulacion_load->id_ref : 0;
    810   $reformula = _proyectos_reformulacion_load($node, $id_ref);
    811   $variaciones = _proyectos_reformula_all_partidas_load($node, $id_ref);
     889  //add breadcrumb
     890  $breadcrumb = array();
     891  $breadcrumb[] = l(t('Home'), '<front>');
     892  $breadcrumb[] = l(t('Proyectos Operativos'), 'proyectos_operativos');
     893  if ($node->nid) {
     894    $breadcrumb[] = l(check_plain($node->title), 'proyectosop/' . $node->nid);
     895    $breadcrumb[] = l(t('Reformulaciones'), 'proyectosop/' . $node->nid . '/reformular');
     896    if ($reformulacion['id_ref']){
     897      $breadcrumb[] = l(check_plain('Reform-' . $reformulacion['id_ref']), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/view');
     898    }
     899    $breadcrumb[] = $title;
     900  }
     901  drupal_set_breadcrumb($breadcrumb);
     902  $variaciones = _proyectos_reformula_all_partidas_load($node, $reformulacion['id_ref']);
    812903  $field = content_fields('field_proyecto_unidadm', 'proyectos_operativos');
    813904  $unidad_ant = $node->field_proyecto_unidadm[0]['value'];
     
    839930    '#attributes' => array('class' => 'campo-bloqueado '),
    840931  );
    841   $valor_medida = $reformula['unidad'] ? $reformula['unidad'] : $node->field_proyecto_unidadm[0]['value'];
     932  $valor_medida = $reformulacion['unidad'] ? $reformulacion['unidad'] : $node->field_proyecto_unidadm[0]['value'];
    842933  $form['field_proyecto_unidadm'] = array(
    843934    '#title' => t('Unidad de Medida Nueva'),
     
    846937    '#default_value' => $valor_medida,
    847938  );
     939  $personas = variable_get('proyectos_operativos_allow_unidpersona', array());
     940  $form['#personas'] = $personas;
     941  if (count($personas)) {
     942    $array_genero = array('m', 'f');
     943    $genero_min = array();
     944    $total_g = 0;
     945    $totales_g = 0;
     946    foreach($array_genero as $campo) {
     947      $gcampo = 'unidad_' . $campo;
     948      $unidad_valor = $reformulacion[$gcampo] ? $reformulacion[$gcampo] : 0;
     949      $varia = isset($variaciones[$gcampo]) ? $variaciones[$gcampo] : 0;
     950      $genero_min[$campo] = $node->{'field_proyecto_meta_' . $campo}[0]['value'] + $varia;
     951      $field = content_fields('field_proyecto_meta_' . $campo, 'proyectos_operativos');
     952      $form['unidad_' . $campo] = array(
     953        '#title' => $field['widget']['label'],
     954        '#type' => 'textfield',
     955        '#default_value' =>  $unidad_valor,
     956        '#size' => 15,
     957        '#attributes' => array('class' => ' unidad-genero subtotal-unidad-' . $campo . ' number', 'onchange' => "prvalminimo('unidad-" . $campo . "', '" . $genero_min[$campo] . "');prsumaref('" . 'unidad-genero' . "');prsumaref2('" . 'subtotal-unidad-' . $campo . "', 'genero', '" . $campo . "'); prsumaref('subtotales-unidad')"),
     958      );
     959      $total_f = $unidad_f + $genero_min['f'];
     960      $form['unidad_' . $campo . 'total'] = array(
     961        '#type' => 'textfield',
     962        '#default_value' => $unidad_valor + $genero_min[$campo],
     963        '#size' => 15,
     964        '#attributes' => array('class' => 'campo-bloqueado subtotal-unidad-' . $campo . '-total subtotales-unidad number1'),
     965      );
     966      $total_g += $unidad_valor;
     967      $totales_g += $unidad_valor + $genero_min[$campo];
     968    }
     969    $form['unidad_gtotal'] = array(
     970      '#type' => 'textfield',
     971      '#default_value' => $total_g,
     972      '#size' => 15,
     973      '#attributes' => array('class' => 'campo-bloqueado unidad-genero-total number1'),
     974    );
     975    $form['unidad_total'] = array(
     976      '#type' => 'textfield',
     977      '#default_value' => $totales_g,
     978      '#size' => 15,
     979      '#attributes' => array('class' => 'campo-bloqueado subtotales-unidad-total number1'),
     980    );
     981  }
    848982  $ftypes = array(
    849983    'value' => t('January'),
     
    8701004  $min = $node->field_proyecto_monto_anual[0]['value'] + $varia;
    8711005  $form['#monto_reformulado'] = $min;
    872   $valor = isset($reformulacion_load->variacion)? $reformulacion_load->variacion : 0;
     1006  $valor = isset($reformulacion['variacion'])? $reformulacion['variacion'] : 0;
    8731007  $suma_variacion['primero'] = $min;
    8741008  $total_accion = $min;
     
    8761010  $id_field = 'primero';
    8771011  $fecha = array();
    878   $fecha['dia'] = $reformula['fecha_onapre'] ? date('j', $reformula['fecha_onapre']) : date('j');
    879   $fecha['mes'] = $reformula['fecha_onapre'] ? date('n', $reformula['fecha_onapre']) : date('m');
    880   $fecha['year'] = $reformula['fecha_onapre'] ? date('Y', $reformula['fecha_onapre']) : date('Y');
    881   $form['fecha_onapre'] = array(
    882     '#type' => 'date',
    883     '#title' => t('Fecha de Aprobación'),
    884     '#default_value' => array('day' => $fecha['dia'], 'month' => $fecha['mes'], 'year' => $fecha['year']),
    885     '#required' => TRUE,
    886   );
    887   $valor_justificacion = isset($reformula['justificacion'])? $reformula['justificacion'] : '';
     1012  if (variable_get('proyectos_reformulacion_onapre', 0)) {
     1013    $fecha['dia'] = $reformulacion['fecha_onapre'] ? date('j', $reformulacion['fecha_onapre']) : date('j');
     1014    $fecha['mes'] = $reformulacion['fecha_onapre'] ? date('n', $reformulacion['fecha_onapre']) : date('m');
     1015    $fecha['year'] = $reformulacion['fecha_onapre'] ? date('Y', $reformulacion['fecha_onapre']) : date('Y');
     1016    $form['fecha_onapre'] = array(
     1017      '#type' => 'date',
     1018      '#title' => t('Fecha de Aprobación'),
     1019      '#default_value' => array('day' => $fecha['dia'], 'month' => $fecha['mes'], 'year' => $fecha['year']),
     1020      '#required' => TRUE,
     1021      '#disabled' => TRUE,
     1022    );
     1023  }
     1024  $valor_justificacion = isset($reformulacion['justificacion'])? $reformulacion['justificacion'] : '';
    8881025  $form['justificacion'] = array(
    8891026    '#title' => t('Justificación'),
     
    9111048  if (module_exists('workflow')) {
    9121049    $estados = _proyectos_operativos_reformulacion_obtiene_estados();
    913     $estado_inicial = variable_get('proyectos_operativos_state_reformulacion', 0);
     1050    $estado_inicial = variable_get('proyectos_reformulacion_state_reformulacion', 0);
    9141051    if ($estados['wid']) {
    9151052      if ($estado_inicial && $estados['states'][$estado_inicial]) {
     
    9261063  $form['#unidadesm'] = $unidadesm;
    9271064  $form['#variaciones'] = $variaciones;
    928   $form['#reformula'] = $reformula;
    929   $form['#id_ref'] = $id_ref;
     1065  $form['#reformulacion'] = $reformulacion;
     1066  $form['#id_ref'] = $reformulacion['id_ref'];
    9301067  $form['#total_accion'] = $total_accion;
    9311068  $mes_inicio = 0;
     
    9511088  $form['#format_number'] = array('format_number' => $format_number);
    9521089  drupal_add_js($form['#format_number'], 'setting');
     1090  drupal_add_js(array('unidadmpers' => $form['#personas']), 'setting');
    9531091  $i = 1;
    9541092  $sumafisica = 0;
     
    9701108    $min = $node->field_proyecto_meta_fisica[0][$id_field] + $varia;
    9711109    $total_accion += $min;
    972     $valor = isset($reformula['field_proyecto_meta_fisica'][0][$id_field])? $reformula['field_proyecto_meta_fisica'][0][$id_field] : 0;
     1110    $valor = isset($reformulacion['field_proyecto_meta_fisica'][0][$id_field])? $reformulacion['field_proyecto_meta_fisica'][0][$id_field] : 0;
    9731111    $sumafisica += $valor;
    9741112    $sumaT += $min + $valor;
     
    10111149    $i = 1;
    10121150    $sumaP = 0;
    1013     $valor_unidad = $reformula['field_accion_esp_metaf_' . $nid][0]['unidad'] ? $reformula['field_accion_esp_metaf_' . $nid][0]['unidad'] : $ae->field_accion_esp_unidadm[0]['value'];
     1151    $valor_unidad = $reformulacion['field_accion_esp_metaf_' . $nid][0]['unidad'] ? $reformulacion['field_accion_esp_metaf_' . $nid][0]['unidad'] : $ae->field_accion_esp_unidadm[0]['value'];
    10141152    $form[$nid . '_field_accion_esp_metaf_unidadm'] = array(
    10151153      '#title' => t('Unidad de Medida Nueva'),
     
    10331171      $min = $ae->field_accion_esp_metaf[0][$id_field] + $varia;
    10341172      $total_accion += $min;
    1035       $valor = isset($reformula['field_accion_esp_metaf_' . $nid][0][$id_field])? $reformula['field_accion_esp_metaf_' . $nid][0][$id_field] : 0;
     1173      $valor = isset($reformulacion['field_accion_esp_metaf_' . $nid][0][$id_field])? $reformulacion['field_accion_esp_metaf_' . $nid][0][$id_field] : 0;
    10361174      $sumaacciones += $min + $valor;
    10371175      $sumaP += $valor;
     
    10761214    'sumaaccion' => $sumaaccionm,
    10771215    'variacion' => $suma_variacion,
     1216    'genero' => $genero_min,
    10781217  );
    10791218  $form['#jse'] = $jse;
     
    11081247  $proyectos_reformulacion_path = drupal_get_path('module', 'proyectos_reformulacion');
    11091248  drupal_add_js($proyectos_reformulacion_path . '/js/proyectos_reformulacion.js');
    1110   drupal_add_js($form['#format_number'], 'setting');
    1111   drupal_add_js(array('proyectos_reformulacion' => array('mfisicas' => $form['#jse'])), 'setting');
     1249  $format_number = $form['#format_number']['format_number'];
    11121250  $start = $form_state['values']['variacion'];
    11131251  $value = preg_replace('@[^-0-9]@', '', $start);
     
    11161254  }
    11171255  $ftypes = $form['#ftypes'];
     1256  $total_unidad = 0;
    11181257  foreach($ftypes as $id_field => $texto) {
    11191258    $start = $form_state['values']['field_proyecto_meta_fisica_' . $id_field];
     
    11221261      form_set_error('field_proyecto_meta_fisica_' . $id_field, t('Solo números enteros son permitidos en la meta física.'));
    11231262    }
     1263    $total_unidad += $form_state['values']['field_proyecto_meta_fisica_' . $id_field] + $form['#jse']['sumaplan'][$id_field];
    11241264
    11251265    if ($form_state['values']['field_proyecto_meta_fisica_' . $id_field] + $form['#jse']['sumaplan'][$id_field] < 0) {
    1126       form_set_error('field_proyecto_meta_fisica_' . $id_field, t('El valor para reformular de la meta física no puede ser menor que cero'));
     1266      form_set_error('field_proyecto_meta_fisica_' . $id_field, t('El valor de la variación de la meta física no puede ser menor que cero'));
     1267    }
     1268  }
     1269  if (count($form['#personas']) && isset($form['#personas'][$form_state['values']['field_proyecto_unidadm']])) {
     1270    $array_genero = array('m', 'f');
     1271    $total_unidad_genero = 0;
     1272    foreach($array_genero as $campo) {
     1273      $start = $form_state['values']['unidad_' . $campo];
     1274      $value = preg_replace('@[^-0-9]@', '', $start);
     1275      if ($start != $value) {
     1276        form_set_error('unidad_' . $campo, t('Solo números enteros son permitidos en la variación de la meta física por genero.'));
     1277      }
     1278      $total_unidad_genero += $form_state['values']['unidad_' . $campo] + $form['#jse']['genero'][$campo];
     1279    }
     1280    if ($total_unidad_genero != $total_unidad) {
     1281      form_set_error('unidad_gtotal', t('La variación de la meta física por género (@monto_genero) debe ser igual a la de la meta física (@monto_meta).', array('@monto_genero' => number_format($total_unidad_genero, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']), '@monto_meta' => number_format($total_unidad, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))));
    11271282    }
    11281283  }
     
    11541309    return;
    11551310  }
    1156   $fecha_onapre = mktime(0, 0, 0, $form_state['values']['fecha_onapre']['month'], $form_state['values']['fecha_onapre']['day'], $form_state['values']['fecha_onapre']['year']);
     1311
     1312  $fecha_onapre = isset($form_state['values']['fecha_onapre']) ? mktime(0, 0, 0, $form_state['values']['fecha_onapre']['month'], $form_state['values']['fecha_onapre']['day'], $form_state['values']['fecha_onapre']['year']) : 0;
    11571313  $ftypes = $form['#ftypes'];
    11581314  $id_ref = $form['#id_ref'];
     
    11891345    db_query("INSERT INTO {proyectos_reformula} (id_ref, field_name, partida, nid, value, value_1, value_2, value_3, value_4, value_5, value_6, value_7, value_8, value_9, value_10, value_11, ae, unidad) VALUES (%d, '%s', %d, %d, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, %f, 0, %d)", $field);
    11901346  }
     1347  $unidad_f = 0;
     1348  $unidad_m = 0;
     1349  if (count($form['#personas']) && isset($form['#personas'][$form_state['values']['field_proyecto_unidadm']])) {
     1350    $unidad_f = $form_state['values']['unidad_f'];
     1351    $unidad_m = $form_state['values']['unidad_m'];
     1352  }
     1353  db_query("UPDATE {proyectos_reformular} SET variacion = %d, unidad = %d, fecha_onapre = %d, justificacion = '%s', unidad_f = %d, unidad_m = %d WHERE nid = %d AND id_ref = %d", $form_state['values']['variacion'], $form_state['values']['field_proyecto_unidadm'], $fecha_onapre, $justificacion, $unidad_f, $unidad_m, $form['#node']->nid, $id_ref);
     1354  $form_state['redirect'] = 'proyectosop/' . $form['#node']->nid . '/reformular/' . $id_ref . '/view';
    11911355  drupal_set_message(t('La reformulación fue modificada'));
    1192   db_query("UPDATE {proyectos_reformular} SET variacion = %d, unidad = %d, fecha_onapre = %d, justificacion = '%s' WHERE nid = %d AND id_ref = %d", $form_state['values']['variacion'], $form_state['values']['field_proyecto_unidadm'], $fecha_onapre, $justificacion, $form['#node']->nid, $id_ref);
    1193   $form_state['redirect'] = 'proyectosop/' . $form['#node']->nid . '/reformular/' . $id_ref . '/view';
    1194 }
    1195 
    1196 /*
    1197  * Implementation of _proyectos_reformulacion_load()
    1198  */
    1199 function _proyectos_reformulacion_load($node, $id_ref = 0) {
    1200   $reformula_load = proyectosop_menu_reformulacion_load($id_ref, $node);
    1201   $reformula = array();
    1202   $inputs = array();
    1203   $sql = "SELECT * FROM {proyectos_reformula} WHERE nid = %d";
    1204   $sql1 = "SELECT * FROM {proyectos_reformula_fuente} WHERE nid = %d";
    1205   $inputs[] = $node->nid;
    1206   if ($reformula_load) {
    1207     $reformula['total'] = $reformula_load->variacion;
    1208     $reformula['unidad'] = $reformula_load->unidad;
    1209     $reformula['fecha_onapre'] = $reformula_load->fecha_onapre;
    1210     $reformula['justificacion'] = $reformula_load->justificacion;
    1211     $reformula['estado'] = $reformula_load->estado;
    1212     $sql .= ' AND id_ref = %d';
    1213     $sql1 .= ' AND id_ref = %d';
    1214     $inputs[] = $id_ref;
    1215     $result = db_query($sql, $inputs);
    1216     while($partida = db_fetch_array($result)) {
    1217       $reformula[$partida['field_name']][$partida['partida']] = $partida;
    1218     }
    1219     $result = db_query($sql1, $inputs);
    1220     while($partida = db_fetch_array($result)) {
    1221       $reformula[$partida['field_name']][0] = $partida;
    1222     }
    1223   }
    1224   return $reformula;
    12251356}
    12261357
     
    12301361function _proyectos_reformula_all_load($node, $id_ref = 0) {
    12311362  $reformulaciones = array();
    1232   $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
    1233   $result = db_query("SELECT * FROM {proyectos_reformular} WHERE nid = %d AND estado = %d ORDER BY id_ref DESC", $node->nid, $estado_aprobado);
     1363  $estado_aprobado = variable_get('proyectos_reformulacion_state_aprobado', NULL);
     1364  $inputs = array();
     1365  $where = array();
     1366  $inputs[] = $node->nid;
     1367  $where[] = 'nid = %d';
     1368  $inputs[] = $estado_aprobado;
     1369  $where[] = 'estado = %d';
     1370  if ($id_ref) {
     1371    $inputs[] = $id_ref;
     1372    $where[] = 'id_ref < %d';
     1373  }
     1374  $result = db_query("SELECT * FROM {proyectos_reformular} WHERE " . implode(' AND ', $where) . " ORDER BY id_ref DESC", $inputs);
    12341375  while($reformula = db_fetch_array($result)) {
    12351376    $reformulaciones[$reformula['id_ref']] = $reformula;
     
    12581399    'unidad' => t('Unidad'),
    12591400  );
    1260   $load_reformulaciones = array();
    1261   $reformulaciones = _proyectos_reformula_all_load($node, $id_ref);
    1262   if ($id_ref) {
    1263     foreach($reformulaciones as $id => $value) {
    1264       if ($id < $id_ref) {
    1265         $load_reformulaciones[$id] = $values;
    1266       }
    1267     }
    1268   }
    1269   else {
    1270     $load_reformulaciones = $reformulaciones;
    1271   }
     1401  $load_reformulaciones = _proyectos_reformula_all_load($node, $id_ref);
    12721402  $current_id = 0;
    1273   $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
     1403  $estado_aprobado = variable_get('proyectos_reformulacion_state_aprobado', NULL);
    12741404  if(count($load_reformulaciones)) {
    12751405    foreach($load_reformulaciones as $id => $value) {
    1276       $nueva_variacion = _proyectos_reformulacion_load($node, $id);
     1406      $nueva_variacion = proyectosop_reformulacion_load($id);
    12771407      if ($estado_aprobado == $nueva_variacion['estado'] && !$current_id) {
    12781408        $current_id = $id;
     
    12831413      if(count($nueva_variacion)) {
    12841414        foreach($nueva_variacion as $id_campo => $campo) {
    1285           if ($id_campo != 'total' && $id_campo != 'unidad') {
     1415          if ($id_campo != 'total' && $id_campo != 'unidad' && $id_campo != 'unidad_f' && $id_campo != 'unidad_m') {
    12861416            if(is_array($campo) && count($campo)) {
    12871417              foreach($campo as $id_partida => $partida) {
     
    13061436          }
    13071437          else {
    1308             if ($id_campo == 'total') {
    1309               if (!isset($variaciones['total'])) {
    1310                 $variaciones['total'] = 0;
     1438            if ($id_campo == 'total' || $id_campo != 'unidad_f' || $id_campo != 'unidad_m') {
     1439              if (!isset($variaciones[$id_campo])) {
     1440                $variaciones[$id_campo] = 0;
    13111441              }
    1312               $variaciones['total'] += $campo;
     1442              $variaciones[$id_campo] += $campo;
    13131443            }
    13141444            else {
    1315               $variaciones['unidad'] = $campo;
     1445              $variaciones[$id_campo] = $campo;
    13161446            }
    13171447          }
     
    13291459  $node = $form['#node'];
    13301460  $variaciones = $form['#variaciones'];
    1331   $reformula = $form['#reformula'];
     1461  $reformula = $form['#reformulacion'];
    13321462  $planificado = t('planificado');
    13331463  $total_AE_text = t('Total AE');
     1464  $format_number = $form['#format_number']['format_number'];
    13341465  $variacion = t('variación');
    1335   $reformula = _proyectos_reformulacion_load($node, $id_ref);
    1336   $variaciones = _proyectos_reformula_all_partidas_load($node, $id_ref);
    13371466  $output = '';
    13381467  $output .= '<fieldset><legend>' . t('Monto Total del Proyecto') . '</legend>';
    13391468  $rows = array();
    1340   $row = array();
    1341   $row[] = array('data' => drupal_render($form['fecha_onapre']));
    1342   $row[] = array('data' => drupal_render($form['justificacion']));
    1343   $rows[] = $row;
    13441469  $row = array();
    13451470  $row[] = array('data' => '<b>' . t('Monto Total del Proyecto para el año en curso: %monto', array('%monto' => number_format($form['#monto_reformulado'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))) . '</b>', 'colspan' => 2, 'align' => center);
     
    13491474  $row[] = array('data' => drupal_render($form['variaciont']), );
    13501475  $rows[] = $row;
     1476  $row = array();
     1477  $colspan = 2;
     1478  if (isset($form['fecha_onapre'])) {
     1479    $row[] = array('data' => drupal_render($form['fecha_onapre']));
     1480    $colspan--;
     1481  }
     1482  $row[] = array('data' => drupal_render($form['justificacion']), 'colspan' => $colspan);
     1483  $rows[] = $row;
    13511484  $output .= theme('table', array(), $rows) . '</fieldset>';
    13521485  $output .= '<fieldset><legend>' . t('Distribución de la Meta Física') . '</legend>';
     
    13541487  $output .= drupal_render($form['field_proyecto_unidadm_ant']);
    13551488  $output .= drupal_render($form['field_proyecto_unidadm']);
     1489  if (isset($form['unidad_f']) && $form['unidad_m']) {
     1490    $output .= '<div id="meta-unidm-pers"><table id="unidm-persona" style="width:700px">';
     1491    $output .= '<tr><th style="text-align: center">' . t('Meta Física por Género') . '</th><th style="text-align: center">' . $form['unidad_m']['#title'] . '</th><th style="text-align: center">' . $form['unidad_f']['#title'] . '</th><th style="text-align: center">' . t('Total') . '</th></tr>';
     1492    $varia = isset($variaciones['unidad_f']) ? $variaciones['unidad_f'] : 0;
     1493    $varia = isset($variaciones['unidad_m']) ? $variaciones['unidad_m'] : 0;
     1494    $output .= '<tr><td>' . t('Planificado') . '</td><td>' . number_format($form['#jse']['genero']['m'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']) . '</td><td>' . number_format($form['#jse']['genero']['f'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']) . '</td><td>' . number_format($form['#jse']['genero']['m'] + $form['#jse']['genero']['f'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']) . '</td></tr>';
     1495    $form['unidad_m'][0]['value']['#title'] = '';
     1496    $form['unidad_f'][0]['value']['#title'] = '';
     1497    $totalm = $form['field_proyecto_meta_m'][0]['#value']['value'] + $form['field_proyecto_meta_f'][0]['#value']['value'];
     1498    $total = $form['unidad_f']['#value'] + $form['unidad_m']['#value'];
     1499    $form['unidad_f']['#title'] = '';
     1500    $form['unidad_m']['#title'] = '';
     1501    $output .= '<tr><td>' . t('Variación') . '</td><td>' . drupal_render($form['unidad_m']) . '</td>';
     1502    $output .= '<td>' . drupal_render($form['unidad_f']) . '</td>';
     1503    $output .= '<td>' . drupal_render($form['unidad_gtotal']) . '</td></tr>';
     1504    $output .= '<tr><td><b>' . t('TOTAL') . '</b></td><td>' . drupal_render($form['unidad_mtotal']) . '</td>';
     1505    $output .= '<td>' . drupal_render($form['unidad_ftotal']) . '</td>';
     1506    $output .= '<td>' . drupal_render($form['unidad_total']) . '</td></tr>';
     1507    $output .= '</table></div>';
     1508    $output .= '<div class="texto-proyecto-metafisica">' . t('Estimado Usuario: El monto a ingresar debe comenzar con el signo mas "+" o con el signo menos "-".') . '</div>';
     1509  }
    13561510  $header = array();
    13571511  $header[] = array('data' => t('Meta Física del Proyecto'));
     
    14611615/**
    14621616 * Implementation of _proyectos_operativos_reformula_obtiene_estados().
    1463  * Obtiene los estados del tipo de contenido proyecto.
     1617 * Obtiene los estados del flujo de trabajo para las reformulaciones.
    14641618 */
    14651619function _proyectos_operativos_reformulacion_obtiene_estados() {
     
    14671621  $wid = 0;
    14681622  if (module_exists('workflow')) {
    1469     $wid = workflow_get_workflow_for_type('proyectos_operativos');
     1623    $wid = variable_get('proyectos_reformulacion_workflow', 0);
    14701624    if ($wid){
    14711625      $estados = workflow_get_states($wid);
     
    14831637function _proyectos_reformulacion_reformula_list_page($node) {
    14841638  drupal_set_title(t('Reformulaciones del Proyecto'));
     1639  //add breadcrumb
     1640  $breadcrumb = array();
     1641  $breadcrumb[] = l(t('Home'), '<front>');
     1642  $breadcrumb[] = l(t('Proyectos Operativos'), 'proyectos_operativos');
     1643  if ($node->nid) {
     1644    $breadcrumb[] = l(check_plain($node->title), 'proyectosop/' . $node->nid);
     1645    $breadcrumb[] = t('Reformulaciones');
     1646  }
     1647  drupal_set_breadcrumb($breadcrumb);
    14851648  $output = '';
    14861649  $output .= _proyectos_reformulacion_reformula_obtiene_list_page($node, TRUE);
     
    15021665  $add_reformular = _proyectos_reformulacion_reformula_node_add_tab_access($node);
    15031666  $tipo_plan = 'proyectos_operativos_reformular';
    1504   $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
     1667  $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador);
    15051668  $fecha = FALSE;
    15061669  $ente = usuario_tiene_ente($user->uid);
     
    15101673  if (!$fecha) {
    15111674    if ($muestra) {
    1512       muestra_mensaje($tipo_plan, $ente_planificador->tipo);
     1675      muestra_mensaje($tipo_plan, $ente_planificador);
    15131676    }
    15141677  }
     
    15171680      $fecha = TRUE;
    15181681      if ($muestra) {
    1519         muestra_mensaje($tipo_plan, $ente_planificador->tipo, 0);
     1682        muestra_mensaje($tipo_plan, $ente_planificador, 0);
    15201683      }
    15211684    }
     
    15231686      $fecha = FALSE;
    15241687    }
    1525   }
    1526   $enlaces_estados = TRUE;
    1527   if ($ente->nid != $ente_planificador->nid && !user_access('admin planificador')) {
    1528     $enlaces_estados = FALSE;
    15291688  }
    15301689  $states = _proyectos_operativos_reformulacion_obtiene_estados();
     
    15331692    $first_state = _workflow_creation_state($states['wid']);
    15341693  }
    1535   $estado_naprobado = variable_get('proyectos_operativos_state_naprobado', NULL);
    1536   $result = db_query('SELECT re.*, u.name, u.uid FROM {proyectos_reformular} re INNER JOIN {users} u ON u.uid = re.uid WHERE nid = %d AND estado <> %d ORDER BY id_ref DESC', $node->nid, $estado_naprobado);
     1694  $estado_naprobado = variable_get('proyectos_reformulacion_state_naprobado', NULL);
     1695  $result = db_query('SELECT re.id_ref, u.name, u.uid FROM {proyectos_reformular} re INNER JOIN {users} u ON u.uid = re.uid WHERE nid = %d AND estado <> %d ORDER BY id_ref DESC', $node->nid, $estado_naprobado);
    15371696  $header = array();
    15381697  $header[] = array('data' => t('Fecha'));
     
    15491708  $roles = array_keys($user->roles);
    15501709  $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
    1551   $editar = ($node->_workflow == $estado_aprobado);
    1552   while($reformular = db_fetch_object($result)) {
     1710  $estado_aprobador = variable_get('proyectos_reformulacion_state_aprobado', NULL);
     1711  while($reformular = db_fetch_array($result)) {
     1712    $reformulacion = proyectosop_reformulacion_load($reformular['id_ref']);
    15531713    if ($user->uid == 1) {
    15541714      // Superuser is special.
     
    15571717    else {
    15581718      $roles_transition = $roles;
    1559       if ($user->uid == $reformular->uid && $reformular->uid > 0) {
     1719      if ($user->uid == $reformular['uid'] && $reformulacion['uid'] > 0) {
    15601720        $roles_transition += array('author' => 'author');
    15611721      }
     
    15631723    $transitions = array();
    15641724    if ($states['wid']) {
    1565       $transitions = workflow_allowable_transitions($reformular->estado, 'to', $roles_transition);
    1566     }
    1567     unset($transitions[$reformular->estado]);
     1725      $transitions = workflow_allowable_transitions($reformulacion['estado'], 'to', $roles_transition);
     1726    }
     1727    unset($transitions[$reformulacion['estado']]);
    15681728    $acciones = array();
    15691729    $row = array();
    1570     $row[] = array('data' => format_date($reformular->date),);
    1571     $estado = isset($states['states'][$reformular->estado]) ? $states['states'][$reformular->estado] : 'N/A';
     1730    $row[] = array('data' => format_date($reformular['date']),);
     1731    $estado = isset($states['states'][$reformulacion['estado']]) ? $states['states'][$reformulacion['estado']] : 'N/A';
    15721732    $row[] = array('data' => $estado,);
    1573     $estado = isset($states['states'][$reformular->estado_ant]) ? $states['states'][$reformular->estado_ant] : 'N/A';
     1733    $estado = isset($states['states'][$reformulacion['estado_ant']]) ? $states['states'][$reformulacion['estado_ant']] : 'N/A';
    15741734    $row[] = array('data' => $estado,);
    1575     $row[] = array('data' => date( 'd/m/Y', $reformular->fecha_onapre),);
    1576     $row[] = array('data' => number_format($reformular->monto, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
    1577     $row[] = array('data' => number_format($reformular->variacion, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
    1578     $total = $reformular->monto + $reformular->variacion;
     1735    $texto = $reformulacion['fecha_onapre']? date( 'd/m/Y', $reformulacion['fecha_onapre']) : 'N/A';
     1736    $row[] = array('data' => $texto,);
     1737    $row[] = array('data' => number_format($reformulacion['monto'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
     1738    $row[] = array('data' => number_format($reformulacion['variacion'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
     1739    $total = $reformulacion['monto'] + $reformulacion['variacion'];
    15791740    $row[] = array('data' => number_format($total, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']),);
    1580     $row[] = array('data' => l($reformular->name, 'user/' . $reformular->uid),);
     1741    $row[] = array('data' => l($reformular['name'], 'user/' . $reformulacion['uid']),);
    15811742    //display options
    1582     if ($editar) {
    1583       $acciones[] = l(t('Ver'), 'proyectosop/' . $node->nid . '/reformular/' . $reformular->id_ref . '/view');
     1743    if ($reformulacion['id_ref']) {
     1744      $acciones[] = l(t('Ver'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/view');
    15841745    }
    15851746    if ($add_reformular) {
    15861747      $acciones[] = l(t('Agregar nueva reformulación'), 'proyectosop/' . $node->nid . '/reformular/add');
    15871748    }
    1588     if ($editar && $fecha && $reformular->estado != $estado_naprobado &&  $reformular->estado != $estado_aprobado && $reformular->id_ref) {
    1589       $acciones[] = l(t('Modificar'), 'proyectosop/' . $node->nid . '/reformular/' . $reformular->id_ref . '/edit');
    1590     }
    1591     if ($enlaces_estados && count($transitions) && $reformular->estado != $estado_aprobado) {
    1592       foreach($transitions as $id => $transition) {
    1593         $acciones[] = l(t('Enviar a @state', array('@state' => $transition)), 'proyectosop/' . $node->nid . '/reformular/' . $reformular->id_ref . '/workflow/' . $id);
    1594       }
     1749
     1750    if (_proyectos_reformulacion_reformula_node_edit_tab_access($node, $reformulacion)) {
     1751    //if ($editar && $fecha && $reformular->estado != $estado_naprobado &&  $reformular->estado != $estado_aprobador && $reformular->id_ref && count($transitions)) {
     1752      $acciones[] = l(t('Modificar'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/edit');
     1753    }
     1754    if (_proyectos_reformulacion_reformula_wk_node_tab_access($node, $reformulacion)) {
     1755      $acciones[] = l(t('Cambiar estado'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/workflow/');
    15951756    }
    15961757    $row[] = array('data' =>  theme('item_list', $acciones),);
     
    16031764  }
    16041765  $output = '';
    1605   if ($node->field_acciones_ente[0]['nid']) {
     1766  if ($ente_planificador) {
    16061767    $output = '<fieldset><legend>' . t('Datos de la Acción Centralizada') . '</legend>';
    1607     $ente_planificador = node_load($node->field_proyecto_ente[0]['nid']);
    16081768    $output .= '<div class="field"><div class="field-label">' . t('Ente') . ':</div>' . l($ente_planificador->title, 'proyectosop/' . $ente_planificador->nid) . '</div>';
    16091769    $output .= '<div class="field"><div class="field-label">' . t('Año') . ':</div>' . $node->anhoproyectos_operativos . '</div>';
     
    16281788 * Obtiene el monto total de las partidas de las acciones especificas
    16291789 */
    1630 function total_reformulado_ae($node, $reformula, $exclude = array()) {
     1790function total_reformulado_ae($node, $reformulacion, $exclude = array()) {
    16311791  $ae_l = array();
    16321792  $suma_r_ae = 0;
     
    16501810      if (!isset($exclude[$ae['nid']])) {
    16511811
    1652         if (array_key_exists('field_accion_esp_programacion_' . $ae['nid'], $reformula)) {
    1653           foreach($reformula['field_accion_esp_programacion_' . $ae['nid']] as $montos_accion) {
     1812        if (array_key_exists('field_accion_esp_programacion_' . $ae['nid'], $reformulacion)) {
     1813          foreach($reformulacion['field_accion_esp_programacion_' . $ae['nid']] as $montos_accion) {
    16541814            foreach ($ftypes as $clave => $valor) {
    16551815              $suma_r_ae += $montos_accion[$clave];
     
    16661826 * Implementation of _proyectos_reformulacion_reformula_tab_page_ver()
    16671827 */
    1668 function _proyectos_reformulacion_reformula_tab_page_ver($node, $reformulacion_load = 0, $show_variacion = TRUE, $muestra = TRUE) {
     1828function _proyectos_reformulacion_reformula_tab_page_ver($node, $reformulacion = 0, $show_variacion = TRUE, $muestra = TRUE) {
     1829  global $user;
    16691830  drupal_set_title(t('Consultar Reformulación'));
    1670   global $user;
     1831  //add breadcrumb
     1832  $breadcrumb = array();
     1833  $breadcrumb[] = l(t('Home'), '<front>');
     1834  $breadcrumb[] = l(t('Proyectos Operativos'), 'proyectos_operativos');
     1835  if ($node->nid) {
     1836    $breadcrumb[] = l(check_plain($node->title), 'proyectosop/' . $node->nid);
     1837    $breadcrumb[] = l(t('Reformulaciones'), 'proyectosop/' . $node->nid . '/reformular');
     1838    $breadcrumb[] = t('Consultar Reformulación');
     1839  }
     1840  drupal_set_breadcrumb($breadcrumb);
    16711841  $format_number = array(
    16721842    'decimals' => variable_get('proyectos_operativos_number_decimals', 0),
     
    16741844    'thousands_sep' => variable_get('proyectos_operativos_number_thousands_sep', '.'),
    16751845  );
     1846  $id_ref = $reformulacion['id_ref'];
    16761847  $ftypes = array(
    16771848    'value' => t('January'),
     
    16921863  $add_reformular = _proyectos_reformulacion_reformula_node_add_tab_access($node);
    16931864  $tipo_plan = 'proyectos_operativos_reformular';
    1694   $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador->tipo);
     1865  $mi_fecha = ente_planificador_user_acceso_proceso($tipo_plan, $ente_planificador);
    16951866  $fecha = FALSE;
    16961867  $ente = usuario_tiene_ente($user->uid);
     
    17001871  if (!$fecha) {
    17011872    if ($muestra) {
    1702       muestra_mensaje($tipo_plan, $ente_planificador->tipo);
     1873      muestra_mensaje($tipo_plan, $ente_planificador);
    17031874    }
    17041875  }
     
    17071878      $fecha = TRUE;
    17081879      if ($muestra) {
    1709         muestra_mensaje($tipo_plan, $ente_planificador->tipo, 0);
     1880        muestra_mensaje($tipo_plan, $ente_planificador, 0);
    17101881      }
    17111882    }
     
    17191890  }
    17201891  $estado_aprobado = variable_get('proyectos_operativos_state_aprobado', NULL);
     1892  $estado_aprobador = variable_get('proyectos_reformulacion_state_aprobado', NULL);
    17211893  $editar = ($node->_workflow == $estado_aprobado);
    1722   $id_ref = $reformulacion_load ? $reformulacion_load->id_ref : 0;
    1723   $reformula = _proyectos_reformulacion_load($node, $id_ref);
    17241894  $variaciones = _proyectos_reformula_all_partidas_load($node, $id_ref);
    17251895  //obtiene el total de las variaciones de las acciones especificas
    17261896  $ae_l = array();
    1727   $suma_r_ae = total_reformulado_ae($node, $reformula);
     1897  $suma_r_ae = total_reformulado_ae($node, $reformulacion);
    17281898  $field = content_fields('field_proyecto_unidadm', 'proyectos_operativos');
    17291899  $unidad_ant = $node->field_proyecto_unidadm[0]['value'];
     
    17591929  $varia = isset($variaciones['total']) ? $variaciones['total'] : 0;
    17601930  $min = $node->field_proyecto_monto_anual[0]['value'] + $varia;
    1761   $valor = isset($reformula['total'])? $reformula['total'] : 0;
     1931  $valor = isset($reformulacion['total'])? $reformulacion['total'] : 0;
    17621932  $total_accion = $min;
    17631933  if (module_exists('workflow')) {
     
    17691939  $subtotal = t('Total AE');
    17701940  $output = '';
    1771   if ($suma_r_ae != $reformula['total']) {
    1772     $output .= '<div id="mensaje_alerta"><label style ="color:red">' . t('El monto de la variación del proyecto (%monto_total_proyecto) es diferente al total de las variaciones de las Acciones Específicas (%monto_total_ae)', array('%monto_total_proyecto' => number_format($reformula['total'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']), '%monto_total_ae' => number_format($suma_r_ae, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))) . '</label></div>';
     1941  if ($suma_r_ae != $reformulacion['total']) {
     1942    $output .= '<div id="mensaje_alerta"><label style ="color:red">' . t('El monto de la variación del proyecto (%monto_total_proyecto) es diferente al total de las variaciones de las Acciones Específicas (%monto_total_ae)', array('%monto_total_proyecto' => number_format($reformulacion['total'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']), '%monto_total_ae' => number_format($suma_r_ae, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))) . '</label></div>';
    17731943  }
    17741944  $output .= '<fieldset><legend>' . t('Resumen del Proyecto') . '</legend>';
     
    18091979  $rows = array();
    18101980  $row = array();
    1811   $row[] = array('data' => t('<b>Fecha de Aprobación:</b> %fecha_onapre', array('%fecha_onapre' => date( 'd/m/Y', $reformula['fecha_onapre']))), 'align' => 'left');
    1812   $row[] = array('data' => t('<b>Justificación:</b> %justificacion', array('%justificacion' => $reformula['justificacion'])), 'align' => 'left');
    1813   $rows[] = $row;
    1814   $row = array();
    18151981  $row[] = array('data' => '<b>' . t('Monto Total del Proyecto para el año en curso: %monto', array('%monto' => number_format($total_accion, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))) . '</b>', 'colspan' => 2, 'align' => center);
    18161982  $rows[] = $row;
    18171983  $row = array();
    18181984  $signo = '';
    1819   if ($reformulacion_load->variacion > 0) {
     1985  if ($reformulacion['variacion'] > 0) {
    18201986    $signo = '+';
    18211987  }
    1822   $row[] = array('data' => t('Variación Presupuestaria: %variacion', array('%variacion' => $signo . number_format($reformulacion_load->variacion, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))), );
    1823   $row[] = array('data' => t('Monto Total Reformulación: %totalreformulacion', array('%totalreformulacion' => number_format($reformulacion_load->variacion + $total_accion, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))), );
     1988  $row[] = array('data' => t('Variación Presupuestaria: %variacion', array('%variacion' => $signo . number_format($reformulacion['variacion'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))), );
     1989  $row[] = array('data' => t('Monto Total Reformulación: %totalreformulacion', array('%totalreformulacion' => number_format($reformulacion['variacion'] + $total_accion, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))), );
     1990  $rows[] = $row;
     1991  $row = array();
     1992  $colspan = 2;
     1993  if (variable_get('proyectos_reformulacion_onapre', 0)) {
     1994    $colspan--;
     1995    $row[] = array('data' => t('<b>Fecha de Aprobación:</b> %fecha_onapre', array('%fecha_onapre' => date( 'd/m/Y', $reformulacion['fecha_onapre']))), 'align' => 'left');
     1996  }
     1997  $row[] = array('data' => t('<b>Justificación:</b> %justificacion', array('%justificacion' => $reformulacion['justificacion'])), 'align' => 'left', 'colspan' => $colspan);
    18241998  $rows[] = $row;
    18251999  $output .= theme('table', array(), $rows) . '</fieldset>';
     
    18272001  $output .= '<fieldset><legend>' . t('Meta Física del Proyecto') . '</legend>';
    18282002  $output .= '<div class="field"><div class="field-label">' . t('Unidad de Medida Anterior') . ':</div>' . $unidadesm[$node->field_proyecto_unidadm[0]['value']] . '</div>';
    1829   $output .= '<div class="field"><div class="field-label">' . t('Unidad de Medida Nueva') . ':</div>' . $unidadesm[$reformulacion_load->unidad] . '</div>';
     2003  $output .= '<div class="field"><div class="field-label">' . t('Unidad de Medida Nueva') . ':</div>' . $unidadesm[$reformulacion['unidad']] . '</div>';
     2004  $personas = variable_get('proyectos_operativos_allow_unidpersona', array());
     2005  if (isset($personas[$reformulacion['unidad']])) {
     2006    $output .= '<br><div id="meta-unidm-pers">';
     2007    $array_genero = array('m', 'f');
     2008    $genero_min = array();
     2009    $total_g = 0;
     2010    $totales_g = 0;
     2011    $header = array();
     2012    $header[] = array('data' => t('Meta Física por Género'));
     2013    $rows = array();
     2014    $row = array();
     2015    $row1 = array();
     2016    $row2 = array();
     2017    $row[] = array('data' => $planificado, );
     2018    $row1[] = array('data' => $variacion, );
     2019    $row2[] = array('data' => '<b>' . t('TOTAL') . '</b>', );
     2020    foreach($array_genero as $campo) {
     2021      $field = content_fields('field_proyecto_meta_' . $campo, 'proyectos_operativos');
     2022      $header[] = array('data' => $field['widget']['label']);
     2023      $varia = isset($variaciones[$gcampo]) ? $variaciones[$gcampo] : 0;
     2024      $genero_min[$campo] = $node->{'field_proyecto_meta_' . $campo}[0]['value'] + $varia;
     2025      $total_g += $genero_min[$campo];
     2026      $row[] = array('data' => number_format($genero_min[$campo], 0, $format_number['dec_point'], $format_number['thousands_sep']), );
     2027      $valor = $reformulacion['unidad_' . $campo];
     2028      $signo = '';
     2029      if ($valor > 0) {
     2030        $signo = '+';
     2031      }
     2032      $totales_g += $valor;
     2033      $row1[] = array('data' => $signo . number_format($valor, 0, $format_number['dec_point'], $format_number['thousands_sep']), );
     2034      $row2[] = array('data' => number_format($valor + $genero_min[$campo], 0, $format_number['dec_point'], $format_number['thousands_sep']), );
     2035    }
     2036    $header[] = array('data' => t('Total'));
     2037    $row[] = array('data' => number_format($total_g, 0, $format_number['dec_point'], $format_number['thousands_sep']), );
     2038    $row1[] = array('data' => number_format($totales_g, 0, $format_number['dec_point'], $format_number['thousands_sep']), );
     2039    $row2[] = array('data' => number_format($total_g + $totales_g, 0, $format_number['dec_point'], $format_number['thousands_sep']), );
     2040    $rows[] = $row;
     2041    $rows[] = $row1;
     2042    $rows[] = $row2;
     2043    $output .= theme('table', $header, $rows);
     2044    $output .= '</div><br>';
     2045  }
    18302046  $header = array();
    18312047  $header[] = array('data' => t('Meta Física del Proyecto'));
     
    18432059    $varia = isset($variaciones['field_proyecto_meta_fisica'][0][$id_field]) ? $variaciones['field_proyecto_meta_fisica'][0][$id_field] : 0;
    18442060    $min = $node->field_proyecto_meta_fisica[0][$id_field] + $varia;
    1845     $valor = isset($reformula['field_proyecto_meta_fisica'][0][$id_field])? $reformula['field_proyecto_meta_fisica'][0][$id_field] : 0;
     2061    $valor = isset($reformulacion['field_proyecto_meta_fisica'][0][$id_field])? $reformulacion['field_proyecto_meta_fisica'][0][$id_field] : 0;
    18462062    $signo = '';
    18472063    if ($valor > 0) {
     
    18922108    $rowF[] = array('data' => $grupo->titulo_asignado);
    18932109    $links = array();
    1894     $links[] = l(t('Ver reformulación'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion_load->id_ref . '/ae/' . $grupo->nid);
    1895     if (_proyectos_reformulacion_reformula_node_edit_tab_access($node, $reformulacion_load)) {
    1896       $links[] = l(t('Reformular'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion_load->id_ref . '/ae/' . $grupo->nid . '/edit');
     2110    $links[] = l(t('Ver reformulación'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/ae/' . $grupo->nid);
     2111    if (_proyectos_reformulacion_reformula_node_edit_tab_access($node, $reformulacion)) {
     2112      $links[] = l(t('Reformular'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/ae/' . $grupo->nid . '/edit');
    18972113    }
    18982114    $rowF[] = array('data' => theme('item_list', $links),);
    18992115    $rowsF[] = $rowF;
    19002116    $row[] = array('data' => t('AE %numero', array('%numero' => $i)), 'rowspan' => 3);
    1901     $row[] = array('data' => t('<b>Unidad de Medida Anterior:</b> %umedida', array('%umedida' => $unidadesm[$grupo->field_accion_esp_unidadm[0]['value']])) . '<br/>'. t('<b>Unidad de Medida Nueva:</b> %umedida', array('%umedida' => $unidadesm[$reformula['field_accion_esp_metaf_' . $nid][0]['unidad']])), 'rowspan' => 3);
     2117    $row[] = array('data' => t('<b>Unidad de Medida Anterior:</b> %umedida', array('%umedida' => $unidadesm[$grupo->field_accion_esp_unidadm[0]['value']])) . '<br/>'. t('<b>Unidad de Medida Nueva:</b> %umedida', array('%umedida' => $unidadesm[$reformulacion['field_accion_esp_metaf_' . $nid][0]['unidad']])), 'rowspan' => 3);
    19022118    $row[] = array('data' => $grupo->field_accion_esp_ponderacion[0]['value'], 'rowspan' => 3);
    19032119    $row[] = array('data' => $planificado, );
     
    19092125      $varia = isset($variaciones['field_accion_esp_metaf_' . $nid][0][$id_field]) ? $variaciones['field_accion_esp_metaf_' . $nid][0][$id_field] : 0;
    19102126      $min = $grupo->field_accion_esp_metaf[0][$id_field] + $varia;
    1911       $valor = isset($reformula['field_accion_esp_metaf_' . $nid][0][$id_field])? $reformula['field_accion_esp_metaf_' . $nid][0][$id_field] : 0;
     2127      $valor = isset($reformulacion['field_accion_esp_metaf_' . $nid][0][$id_field])? $reformulacion['field_accion_esp_metaf_' . $nid][0][$id_field] : 0;
    19122128      $signo = '';
    19132129      if ($valor > 0) {
     
    19542170    }
    19552171    if (isset($states['wid'])) {
    1956       $estado_naprobado = variable_get('proyectos_operativos_state_naprobado', NULL);
    1957       if (_proyectos_reformulacion_reformula_node_edit_tab_access($node, $reformulacion_load) && $editar && $fecha && $reformulacion_load->estado != $estado_naprobado &&  $reformulacion_load->estado != $estado_aprobado && $reformulacion_load->id_ref) {
    1958         $links[] = l(t('Modificar'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion_load->id_ref . '/edit');
     2172      $estado_naprobado = variable_get('proyectos_reformulacion_state_naprobado', NULL);
     2173      if (_proyectos_reformulacion_reformula_node_edit_tab_access($node, $reformulacion)) {
     2174        $links[] = l(t('Modificar'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/edit');
    19592175      }
    19602176      $first_state = 0;
     
    19692185        $roles = array_keys($user->roles);
    19702186        $roles_transition = $roles;
    1971         if ($user->uid == $reformulacion_load->uid && $reformulacion_load->uid > 0) {
     2187        if ($user->uid == $reformulacion['uid'] && $reformulacion['uid'] > 0) {
    19722188          $roles += array('author' => 'author');
    19732189        }
     
    19752191      $transitions = array();
    19762192      if ($states['wid']) {
    1977         $transitions = workflow_allowable_transitions($reformulacion_load->estado, 'to', $roles);
    1978       }
    1979       unset($transitions[$reformulacion_load->estado]);
    1980       if ($suma_r_ae == $reformula['total'] && $enlaces_estados && count($transitions) && $estado_aprobado != $reformulacion_load->estado) {
    1981         foreach($transitions as $id => $transition) {
    1982           $links[] = l(t('Enviar a @state', array('@state' => $transition)), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion_load->id_ref . '/workflow/' . $id);
    1983         }
     2193        $transitions = workflow_allowable_transitions($reformulacion['estado'], 'to', $roles);
     2194      }
     2195      unset($transitions[$reformulacion['estado']]);
     2196      if ($suma_r_ae == $reformulacion['total'] && $enlaces_estados && count($transitions) && $estado_aprobado != $reformulacion['estado']) {
     2197        $links[] = l(t('Cambiar estado'), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/workflow/');
    19842198      }
    19852199    }
     
    19932207 * Formulario para reformular las acciones especificas
    19942208 */
    1995 function proyectos_reformulacion_reformula_tab_page_ae_form($form_state, $node, $reformulacion_load = 0, $ae = 0) {
     2209function proyectos_reformulacion_reformula_tab_page_ae_form($form_state, $node, $reformulacion = 0, $ae = 0) {
    19962210  drupal_set_title(t('Reformular A.E.'));
     2211  //add breadcrumb
     2212  $breadcrumb = array();
     2213  $breadcrumb[] = l(t('Home'), '<front>');
     2214  $breadcrumb[] = l(t('Proyectos Operativos'), 'proyectos_operativos');
     2215  if ($node->nid) {
     2216    $breadcrumb[] = l(check_plain($node->title), 'proyectosop/' . $node->nid);
     2217    $breadcrumb[] = l(t('Reformulaciones'), 'proyectosop/' . $node->nid . '/reformular');
     2218    if ($reformulacion['id_ref']){
     2219      $breadcrumb[] = l(check_plain('Reform-' . $reformulacion['id_ref']), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/view');
     2220      if ($ae->nid) {
     2221        $breadcrumb[] = l(check_plain('AE-' . $ae->nid), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/ae/' . $ae->nid . '/view');
     2222      }
     2223      $breadcrumb[] = t('Reformular A.E.');
     2224    }
     2225  }
     2226  drupal_set_breadcrumb($breadcrumb);
    19972227  $form = array();
    19982228  $proyectos_operativos_path = drupal_get_path('module', 'proyectos_operativos');
     
    20202250    }
    20212251  }
    2022   $id_ref = $reformulacion_load ? $reformulacion_load->id_ref : 0;
    2023   $reformula = _proyectos_reformulacion_load($node, $id_ref);
    2024   $variaciones = _proyectos_reformula_all_partidas_load($node, $id_ref);
    2025   $reformula = _proyectos_reformulacion_load($node, $id_ref);
    2026   $variaciones = _proyectos_reformula_all_partidas_load($node, $id_ref);
     2252  $variaciones = _proyectos_reformula_all_partidas_load($node, $reformulacion['id_ref']);
    20272253  $field = content_fields('field_accion_esp_programacion', 'accion_especifica');
    20282254  $tree = taxonomy_get_tree($field['vid']);
     
    20362262    }
    20372263  }
    2038   //$form['#mes'] = variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0);
    20392264  $form['#mes'] = variable_get('accion_especifica_de_proyecto_seguimiento_anho_seguimiento', 0) == $node->anhoproyectos_operativos ? variable_get('accion_especifica_de_proyecto_seguimiento_mes_seguimiento', 0) - 1 : 0;
    20402265  $format_number = array(
     
    20572282      $varia = isset($variaciones['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field]) ? $variaciones['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field] : 0;
    20582283      $min = $partidas_nodo[$tid][$id_field] + $varia;
    2059       $valor = isset($reformula['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field])? $reformula['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field] : 0;
     2284      $valor = isset($reformulacion['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field])? $reformulacion['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field] : 0;
    20602285      $total1 += $valor;
    20612286      $totalT += $min + $valor;
     
    21102335  //financiamiento
    21112336  $arreglo_financiamiento = array();
    2112   $accion_especifica_number_fields = variable_get('accion_especifica_number_fields', 4);
     2337  $accion_especifica_number_fields = variable_get('proyectos_reformulacion_ae_number_fields', 4);
    21132338  for($i = 0; $i < $accion_especifica_number_fields; $i++) {
    2114     $arreglo_financiamiento['financiamiento_' . $i] = variable_get('accion_especifica_financiamiento_label_' . $i, '') ? variable_get('accion_especifica_financiamiento_label_' . $i, '') : '';
    2115     $arreglo_financiamiento_fields['financiamiento_' . $i] = variable_get('accion_especifica_financiamiento_options_' . $i, array());
     2339    $arreglo_financiamiento['financiamiento_' . $i] = variable_get('proyectos_reformulacion_ae_financiamiento_label_' . $i, '') ? variable_get('proyectos_reformulacion_ae_financiamiento_label_' . $i, '') : '';
     2340    $arreglo_financiamiento_fields['financiamiento_' . $i] = variable_get('proyectos_reformulacion_ae_financiamiento_options_' . $i, array());
    21162341  }
    21172342
     
    21232348  $form['#node'] = $node;
    21242349  $form['#variaciones'] = $variaciones;
    2125   $form['#reformula'] = $reformula;
    2126   $form['#id_ref'] = $id_ref;
     2350  $form['#reformulacion'] = $reformulacion;
     2351  $form['#id_ref'] = $reformulacion['id_ref'];
    21272352  $form['#ae'] = $ae;
    2128   $form['#reformula_load'] = $reformulacion_load;
    2129   $suma_r_ae = total_reformulado_ae($node, $reformula, array($ae->nid => 1));
    2130   $monto_asignar = $form['#reformula_load']->variacion - $suma_r_ae;
     2353  $suma_r_ae = total_reformulado_ae($node, $reformulacion, array($ae->nid => 1));
     2354  $monto_asignar = $form['#reformulacion']['variacion'] - $suma_r_ae;
    21312355  $form['#monto_asignar'] = $monto_asignar;
    21322356  $total = 0;
     
    21472371          $sumafinm[$id_items1] = 0;
    21482372        }
    2149         $valor = isset($reformula[$id1 . '_' . $ae->nid][0]['value'])? $reformula[$id1 . '_' . $ae->nid][0]['value'] : 0;
     2373        $valor = isset($reformulacion[$id1 . '_' . $ae->nid][0]['value'])? $reformulacion[$id1 . '_' . $ae->nid][0]['value'] : 0;
    21502374        $sumafinm[$id_items1] += $min;
    21512375        $sumatotalf += $min;
     
    21632387      }
    21642388    }
    2165 
    21662389    $form['totalf_' . $id_items] = array(
    21672390      '#type' => 'textfield',
     
    22512474  }
    22522475  if ($mf != $finan) {
    2253     form_set_error($form['#ae']->nid . '_field_accion_esp_programacion_' . $tid . '_' . $id_field, t('La suma de la Programación Financiera (#valor) debe ser igual a las Fuentes de Financiamiento (#valor1)', array('#valor' => $mf, '#valor1' => $finan)));
     2476    form_set_error($form['#ae']->nid . '_field_accion_esp_programacion_' . $tid . '_' . $id_field, t('La suma de la Programación Financiera (#valor) debe ser igual a las Fuentes de Financiamiento (#valor1)', array('#valor' => number_format($mf, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']), '#valor1' => number_format($finan, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']))));
    22542477  }
    22552478}
     
    23692592  $rows = array();
    23702593  $row = array();
    2371   $row1 = array();
     2594  $row1 = array();
     2595  $cantidad_campos = count($form['#arreglo']);
    23722596  foreach($form['#arreglo'] as $id => $arreglo1) {
    23732597    $row[] = array('data' => drupal_render($form[$id]), );
     
    23772601  $rows[] = $row1;
    23782602  $row = array();
    2379   $row[] = array('data' => '<b>' . t('TOTAL') . ':</b>', 'colspan' => 3, 'align' => 'right');
    2380   $row[] = array('data' => drupal_render($form['total_financiamiento']), );
     2603  $row[] = array('data' => '<b>' . t('TOTAL:') . '</b>' . drupal_render($form['total_financiamiento']), 'colspan' => $cantidad_campos, 'align' => 'center');
    23812604  $rows[] = $row;
    23822605  $output .= '<fieldset><legend>' . t('Distribución por fuentes de Financiamiento (Bs.)') . '</legend>' . theme('table', array(), $rows) . '</fieldset>';
     
    23882611 * Implementation of _proyectos_reformulacion_reformula_tab_page_ver_ae()
    23892612 */
    2390 function _proyectos_reformulacion_reformula_tab_page_ver_ae($node, $reformulacion_load = 0, $ae = 0) {
     2613function _proyectos_reformulacion_reformula_tab_page_ver_ae($node, $reformulacion = 0, $ae = 0) {
    23912614  drupal_set_title(t('Consultar Reformulación de A.E.'));
     2615 //add breadcrumb
     2616  $breadcrumb = array();
     2617  $breadcrumb[] = l(t('Home'), '<front>');
     2618  $breadcrumb[] = l(t('Proyectos Operativos'), 'proyectos_operativos');
     2619  if ($node->nid) {
     2620    $breadcrumb[] = l(check_plain($node->title), 'proyectosop/' . $node->nid);
     2621    $breadcrumb[] = l(t('Reformulaciones'), 'proyectosop/' . $node->nid . '/reformular');
     2622    if ($reformulacion['id_ref']){
     2623      $breadcrumb[] = l(check_plain('Reform-' . $reformulacion['id_ref']), 'proyectosop/' . $node->nid . '/reformular/' . $reformulacion['id_ref'] . '/view');
     2624    }
     2625    $breadcrumb[] = t('Consultar Reformulación de A.E.');
     2626  }
     2627  drupal_set_breadcrumb($breadcrumb);
    23922628  $planificado = t('planificado');
    23932629  $format_number = array(
     
    24182654    }
    24192655  }
    2420   $id_ref = $reformulacion_load ? $reformulacion_load->id_ref : 0;
    2421   $reformula = _proyectos_reformulacion_load($node, $id_ref);
    2422   $variaciones = _proyectos_reformula_all_partidas_load($node, $id_ref);
     2656  $variaciones = _proyectos_reformula_all_partidas_load($node, $reformulacion['id_ref']);
    24232657  $field = content_fields('field_accion_esp_programacion', 'accion_especifica');
    24242658  $tree = taxonomy_get_tree($field['vid']);
    24252659  $vtid = $field['vtid'];
    24262660  $partidas = array();
    2427   $suma_r_ae = total_reformulado_ae($node, $reformula);
     2661  $suma_r_ae = total_reformulado_ae($node, $reformulacion);
    24282662  if ($tree) {
    24292663    foreach ($tree as $term) {
     
    24352669  //financiamiento
    24362670  $arreglo_financiamiento = array();
    2437   $accion_especifica_number_fields = variable_get('accion_especifica_number_fields', 4);
     2671  $accion_especifica_number_fields = variable_get('proyectos_reformulacion_ae_number_fields', 4);
    24382672  for($i = 0; $i < $accion_especifica_number_fields; $i++) {
    2439     $arreglo_financiamiento['financiamiento_' . $i] = variable_get('accion_especifica_financiamiento_label_' . $i, '') ? variable_get('accion_especifica_financiamiento_label_' . $i, '') : '';
    2440     $arreglo_financiamiento_fields['financiamiento_' . $i] = variable_get('accion_especifica_financiamiento_options_' . $i, array());
    2441   }
    2442 
    2443 /*
    2444   $arreglo = array();
    2445   $titles = array(
    2446     'ordinarios' => t('Recursos Ordinarios'),
    2447     'propios' => t('Recursos Propios'),
    2448     'transferencias' => t('Donaciones'),
    2449     'otros' => t('Otros'),
    2450   );
    2451   $titles_field = array(
    2452     'field_accion_esp_transferencias' => t('Recursos Ordinarios'),
    2453     'field_accion_esp_creditosa' => t('Recursos Propios'),
    2454     'transferencias' => t('Donaciones'),
    2455     'otros' => t('Otros'),
    2456   );
    2457   $arreglo['ordinarios'] = array(
    2458     'field_accion_esp_transferencias' => 'field_accion_esp_transferencias',
    2459     'field_accion_esp_creditosa' => 'field_accion_esp_creditosa',
    2460     'field_accion_esp_mcti' => 'field_accion_esp_mcti',
    2461   );
    2462   $arreglo['propios'] = array(
    2463     'field_accion_esp_venta_act' => 'field_accion_esp_venta_act',
    2464     'field_accion_esp_activos' => 'field_accion_esp_activos',
    2465     'field_accion_esp_flujocaja' => 'field_accion_esp_flujocaja',
    2466     'field_accion_esp_ventapro' => 'field_accion_esp_ventapro',
    2467   );
    2468   $arreglo['transferencias'] = array(
    2469     'field_accion_esp_donaciones' => 'field_accion_esp_donaciones',
    2470   );
    2471   $arreglo['otros'] = array(
    2472     'field_accion_esp_gobernacion' => 'field_accion_esp_gobernacion',
    2473     'field_accion_esp_misionc' => 'field_accion_esp_misionc',
    2474     'field_accion_esp_bid_fona' => 'field_accion_esp_bid_fona',
    2475     'field_accion_esp_fonacit' => 'field_accion_esp_fonacit',
    2476     'field_accion_esp_fonden' => 'field_accion_esp_fonden',
    2477     'field_accion_esp_locti' => 'field_accion_esp_locti',
    2478     'field_accion_esp_fondoidi' => 'field_accion_esp_fondoidi',
    2479     'field_accion_esp_capitalrie' => 'field_accion_esp_capitalrie',
    2480     'field_accion_esp_infocentro' => 'field_accion_esp_infocentro',
    2481     'field_accion_esp_fidetel' => 'field_accion_esp_fidetel',
    2482   );
    2483 */
     2673    $arreglo_financiamiento['financiamiento_' . $i] = variable_get('proyectos_reformulacion_ae_financiamiento_label_' . $i, '') ? variable_get('proyectos_reformulacion_ae_financiamiento_label_' . $i, '') : '';
     2674    $arreglo_financiamiento_fields['financiamiento_' . $i] = variable_get('proyectos_reformulacion_ae_financiamiento_options_' . $i, array());
     2675  }
    24842676  $output = '';
    24852677  $ente_planificador = node_load($node->field_proyecto_ente[0]['nid']);
    2486   if ($suma_r_ae != $reformula['total']) {
    2487     $output .= '<div id="mensaje_alerta"><label style ="color:red">' . t('El monto de la variación del proyecto (%monto_total_proyecto) es diferente al total de las variaciones de las Acciones Específicas (%monto_total_ae)', array('%monto_total_proyecto' => number_format($reformula['total'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']), '%monto_total_ae' => number_format($suma_r_ae, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))) . '</label></div>';
     2678  if ($suma_r_ae != $reformulacion['total']) {
     2679    $output .= '<div id="mensaje_alerta"><label style ="color:red">' . t('El monto de la variación del proyecto (%monto_total_proyecto) es diferente al total de las variaciones de las Acciones Específicas (%monto_total_ae)', array('%monto_total_proyecto' => number_format($reformulacion['total'], $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']), '%monto_total_ae' => number_format($suma_r_ae, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']))) . '</label></div>';
    24882680  }
    24892681  $output .= '<fieldset><legend>' . t('Resumen del Proyecto') . '</legend>';
     
    24922684  $output .= '<div class="field"><div class="field-label">' . t('Organismo') . ':</div>' . $ente_planificador->title . '</div>';
    24932685  $output .= '</fieldset>';
    2494   $output .= '<fieldset><legend>' . t('Resumen Financiero de las Acciones') . '</legend>';
     2686  $output .= '<fieldset><legend>' . t('Resumen Financiero de las Acciones (Bs)') . '</legend>';
    24952687  $header = array();
    24962688  $header[] = array('data' => t('Partidas'), 'colspan' => 2);
     
    25212713      $varia = isset($variaciones['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field]) ? $variaciones['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field] : 0;
    25222714      $min = $partidas_nodo[$tid][$id_field] + $varia;
    2523       $valor = isset($reformula['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field])? $reformula['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field] : 0;
     2715      $valor = isset($reformulacion['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field])? $reformulacion['field_accion_esp_programacion_' . $ae->nid][$tid][$id_field] : 0;
    25242716      $signo = '';
    25252717      if ($valor > 0) {
     
    25662758  $row = array();
    25672759  $row1 = array();
    2568   $sumalT = 0;
     2760  $sumalT = 0;
     2761  $cuenta_financia = count($arreglo_financiamiento);
    25692762  foreach($arreglo_financiamiento as $id_items => $titulo) {
    25702763    $sumal = 0;
     
    25812774        $sumatotalf += $min;
    25822775        $field = content_fields($id1, 'accion_especifica');
    2583         $valor = isset($reformula[$id1 . '_' . $ae->nid][0]['value'])? $reformula[$id1 . '_' . $ae->nid][0]['value'] : 0;
     2776        $valor = isset($reformulacion[$id1 . '_' . $ae->nid][0]['value'])? $reformulacion[$id1 . '_' . $ae->nid][0]['value'] : 0;
    25842777        $total1 += $valor;
    25852778        $total += $valor;
     
    26002793  $rows[] = $row1;
    26012794  $row = array();
    2602   $row[] = array('data' => '<b>' . t('TOTAL') . ':</b>', 'colspan' => 3, 'align' => 'right');
    2603   $row[] = array('data' => number_format($sumalT, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']), );
     2795  $row[] = array('data' => '<b>' . t('TOTAL') . ':</b> ' . number_format($sumalT, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']), 'colspan' => $cuenta_financia, 'align' => 'center');
    26042796  $rows[] = $row;
    26052797  $output .= '<fieldset><legend>' . t('Distribución por fuentes de Financiamiento (Bs.)') . '</legend>' . theme('table', array(), $rows) . '</fieldset>';
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.