Index: 0.3-modules/proyectos_operativos_mcti/accion_especifica_mcti.module
===================================================================
--- 0.3-modules/proyectos_operativos_mcti/accion_especifica_mcti.module	(revision 303fae2a76df6c94a837b5a1db128c463f40e3ea)
+++ 0.3-modules/proyectos_operativos_mcti/accion_especifica_mcti.module	(revision 303fae2a76df6c94a837b5a1db128c463f40e3ea)
@@ -0,0 +1,459 @@
+<?php
+
+  /**
+  * Sistema Integral de PlanificaciÃ³n y Presupuesto (SIPP)
+  * @file accion_especifica.module
+  * Drupal part Module to Sistema Integral de PlanificaciÃ³n y Presupuesto (SIPP)
+  * Copyright 2013 Sistema Automatizado para la PlanificaciÃ³n EstratÃ©gico-Situacional en la AdministraciÃ³n PÃºblica Venezolana (CENDITEL)
+  *
+  * This program is free software; you can redistribute it and/or modify
+  * it under the terms of the GNU General Public License as published by
+  * the Free Software Foundation; either version 2 of the License, or
+  * (at your option) any later version.
+  * 
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  * 
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software
+  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+  *
+  * @author Cenditel Merida - Msc. Juan Vizcarrondo
+  * @date 2013-02-02 // (a&#241;o-mes-dia)
+  * @version 0.1 // (0.1)
+  *
+  */
+
+
+/*
+ * Impletations of hook_form_alter()
+ */
+function accion_especifica_mcti_form_alter(&$form, $form_state, $form_id) {
+  if ($form_id == 'proyectos_operativos_admin_settings') {
+    $form['accion_especifica']['proyectos_operativos_muestra_proyecto_ubicacion_geografica'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Recolectar la ubicaciÃ³n geografica de la Accion EspecÃ­fica.'),
+      '#default_value' => variable_get('proyectos_operativos_muestra_proyecto_ubicacion_geografica', TRUE),
+      '#weight' => 0,
+    );
+  }
+  if ($form_id == 'proyectos_operativos_accion_especifica_crear_form') {
+    $node_type = content_types('accion_especifica');
+    $fields = $node_type['fields'];
+		foreach ($form['#parameters'] as $id => $proyecto) {
+      if ($proyecto->type == 'accion_especifica') {
+        $ae = $proyecto;
+      }
+    }
+    if (!$ae) {
+   		$ae_leido = new stdClass();
+    	$ae_leido->type = 'accion_especifica';
+    	$nid = 0;
+ 	  }
+  	else {
+    	$ae_leido = $ae;
+   		$ae_leido->field_accion_titulo[0]['value'] = trim($ae_leido->field_accion_titulo[0]['value']) == '' ? $ae_leido->title : $ae_leido->field_accion_titulo[0]['value'];
+    	$nid = $ae->nid;
+  	}
+    //nid node
+    foreach ($form['#parameters'] as $id => $proyectos) {
+      if ($proyectos->type == 'proyectos_operativos') {
+        $proyecto = $proyectos;
+      }
+    }
+    if (!$proyecto) {
+      $proyecto = new stdClass();
+      $proyecto->type = 'proyectos_operativos';
+    }
+    else {
+      $proyecto = $proyecto;
+    }
+    $geo = variable_get('proyectos_operativos_muestra_proyecto_ubicacion_geografica', TRUE);
+    if ($geo) {
+      //agregando el campo geo
+      $arreglo = array(
+        'field_accion_esp_geo' => 'field_accion_esp_geo',
+      );
+    }
+    if (is_array($fields) && count($fields)) {
+      foreach ($fields as $field_id => $field) {
+        if (array_key_exists($field_id, $arreglo)) {
+          $field_form[] = $field_id;
+          $fields_form[] = $field_id;
+        }
+        elseif (variable_get('proyectos_operativos_ac_muestra_geo_' . $field_id, FALSE)) {
+          $field_form[] = $field_id;
+          $fields_form[] = $field_id;
+        }
+      }
+    }
+		$ejecucion = 0;
+ 	  $acciones_especificas = array();
+    $montos = 0;
+    $porcentajes = array();
+    foreach ($proyecto->field_proyecto_accion_esp as $accion) {
+      if ($accion['nid'] && $nid != $accion['nid']) {
+        $accion_load = node_load($accion['nid']);
+        if ($accion_load && $accion_load->type == 'accion_especifica') {
+          if ($accion_load->field_accion_esp_programacion[0]['tid']) {
+            foreach ($accion_load->field_accion_esp_programacion as $programacion) {
+              foreach ($programacion as $id_value => $mesp){
+                if ($id_value != 'tid') {
+                  $montos +=$mesp;
+                }
+              }
+            }
+          }
+          $acciones_especificas[$accion_load->nid] = $accion_load;
+          $porcentajes[$accion_load->field_accion_esp_ponderacion[0]['value']] = 1;
+          $ejecucion += $accion_load->field_accion_esp_ponderacion[0]['value'];
+        }
+   	  }
+      elseif ($nid == $accion['nid']) {
+     	  $acciones_especificas[$ae->nid] = $ae;
+   	  }
+    }
+	  $monto_restante = $form['#proyecto']->field_proyecto_monto_anual[0]['value'] - $montos;
+    $et = 100 - $ejecucion;
+    if ($et != 100) {
+	    $form['#mensaje_mostrar'] =  t('Se tiene @asignar % de ponderaciÃ³n sin asignar, con un monto de @montos BS asignados en las Acciones EspecÃ­ficas.', array('@asignar' => $et, '@montos' => number_format($monto_restante, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], 		  $form['#format_number']['format_number']['thousands_sep'])));
+    }
+    else {
+      $form['#mensaje_mostrar'] =  t('Se tiene @asignar % de ponderaciÃ³n Asignada, con un monto total de @montos BS asignados en las Acciones EspecÃ­ficas.', array('@asignar' => $et, '@montos' => number_format($monto_restante, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], 		  $form['#format_number']['format_number']['thousands_sep'])));
+    }
+		$form['#proyectos_operativos_fields'] = array_merge($form['#proyectos_operativos_fields'] , $fields_form);
+    if (is_array($field_form) && count($field_form)) {
+      module_load_include('inc', 'content', 'includes/content.node_form');
+      foreach ($field_form as $field_id) {
+        $field = content_fields($field_id, 'accion_especifica');
+        $form['#field_info'][$field_id] = $field;
+        $form += (array) content_field_form($form, $form_state, $field);
+      }
+    }
+    foreach ($form['#validate'] as $id => $name) {
+	    if ($name == 'proyectos_operativos_accion_especifica_crear_form_validate') {
+		  	$form['#validate'][$id] = 'proyectos_operativos_mcti_accion_especifica_crear_form_validate';
+	    }
+   	}
+   	$form['#submit'][] = 'proyectos_operativos_mcti_accion_especifica_crear_form_submit';
+  }
+}
+
+/*
+ * Validar accion especifica
+ */
+function proyectos_operativos_mcti_accion_especifica_crear_form_validate($form, &$form_state) {
+  $op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
+  if ($op == t('Cancelar') || $op == t('Terminar')) {
+    return;
+  }
+  $proyectos_operativos_path = drupal_get_path('module', 'proyectos_operativos');
+  drupal_add_js($proyectos_operativos_path . '/js/proyectos_operativos_extra.js');
+  drupal_add_js($proyectos_operativos_path . '/js/proyectos_operativos.js');
+  drupal_add_js($proyectos_operativos_path . '/js/accion_especifica.js');
+  drupal_add_js($form['#format_number'], 'setting');
+  //validamos que el porc sea mayor que cero
+  if (!$form_state['values']['field_accion_esp_ponderacion'][0]['value'] && $form_state['values']['field_accion_esp_ponderacion'][0]['value'] >= 100) {
+    form_set_error('field_accion_esp_ponderacion', t('La ponderaciones de la AcciÃ³n especifica debe ser menor que 100'));
+  }
+  //validamos que el porc sea mayor que cero
+  if (!$form_state['values']['field_accion_esp_ponderacion'][0]['value'] && $form_state['values']['field_accion_esp_ponderacion'][0]['value'] <= 0) {
+    form_set_error('field_accion_esp_ponderacion', t('La ponderaciones de la AcciÃ³n especifica debe ser mayor que cero'));
+  }
+  //validamos que la ponderacion no sea mayor a 100
+  $suma_porc = $form['#ejecucion'] + $form_state['values']['field_accion_esp_ponderacion'][0]['value'];
+  if ($suma_porc > 100) {
+    form_set_error('field_accion_esp_ponderacion', t('La suma de las ponderaciones de la AcciÃ³n especifica debe ser menor o igual a 1oo%'));
+  }
+  //validamos que la ponderacion no se encuentre repetida
+  if (!variable_get('accion_especifica_allow_ponderation', 0) && isset($form['#porcentajes'][$form_state['values']['field_accion_esp_ponderacion'][0]['value']])) {
+    form_set_error('field_accion_esp_ponderacion', t('Ya existe una acciÃ³n especifica con esta ponderaciÃ³n'));
+  }
+  //validamos que las fechas esten dentro de la del proyecto
+  if ($form_state['values']['field_accion_esp_fechai'][0]['value'] > $form_state['values']['field_accion_esp_fechai'][0]['value']) {
+    form_set_error('field_accion_esp_fechai', t('La fecha de inicio de la AcciÃ³n especifica debe ser menor a la fecha de fin'));
+  }
+  if ($form['#proyecto']->field_proyecto_fecha_i[0]['value'] > $form_state['values']['field_accion_esp_fechai'][0]['value']) {
+    form_set_error('field_accion_esp_fechai', t('La fecha de inicio de la AcciÃ³n especifica debe ser mayor o igual a la fecha de inicio del proyecto @fecha', array('@fecha' => $form['#proyecto']->field_proyecto_fecha_i[0]['value'])));
+  }
+  if ($form['#proyecto']->field_proyecto_fecha_f[0]['value'] < $form_state['values']['field_accion_esp_fechai'][0]['value']) {
+    form_set_error('field_accion_esp_fechai', t('La fecha de inicio de la AcciÃ³n especifica debe ser mayor o igual a la fecha de fin del proyecto @fecha', array('@fecha' => $form['#proyecto']->field_proyecto_fecha_f[0]['value'])));
+  }
+  if ($form['#proyecto']->field_proyecto_fecha_i[0]['value'] > $form_state['values']['field_accion_esp_fechaf'][0]['value']) {
+    form_set_error('field_accion_esp_fechaf', t('La fecha de fin de la AcciÃ³n especifica debe ser menor o igual a la fecha de inicio del proyecto @fecha', array('@fecha' => $form['#proyecto']->field_proyecto_fecha_i[0]['value'])));
+  }
+  if ($form['#proyecto']->field_proyecto_fecha_f[0]['value'] < $form_state['values']['field_accion_esp_fechaf'][0]['value']) {
+    form_set_error('field_accion_esp_fechaf', t('La fecha de fin de la AcciÃ³n especifica debe ser menor o igual a la fecha de fin del proyecto @fecha', array('@fecha' => $form['#proyecto']->field_proyecto_fecha_f[0]['value'])));
+  }
+  //obtener la fecha de inicio y fin
+  $mes = explode('-', $form_state['values']['field_accion_esp_fechai'][0]['value']);
+  $mes_inicio = 0;
+  if (count($mes)) {
+    $mes_inicio = $mes[1] - 1;
+  }
+  //obtener la fecha de inicio y fin
+  $mes = explode('-', $form_state['values']['field_accion_esp_fechaf'][0]['value']);
+  $mes_final = 0;
+  if (count($mes)) {
+    $mes_final = $mes[1] - 1;
+  }
+  if (isset($form_state['values']['field_accion_esp_metaf'])) {
+    $suma = 0;
+    for ($i = 0; $i < 12; $i++) {
+      if ($mes_inicio <= $i && $mes_final >= $i) {
+        $valor = $i ? 'value_' . $i : 'value';
+        $suma += $form_state['values']['field_accion_esp_metaf'][0][$valor];
+      }
+    }
+    if (!$suma) {
+      form_set_error('field_accion_esp_metaf', t('La DistribuciÃ³n de la Meta FisÃ­ca de la AcciÃ³n especifica debe tener al menos un resultado'));
+    }
+  }
+  //validamos la accion especifica
+  if (isset($form_state['values']['field_accion_esp_programacion']) && count($form_state['values']['field_accion_esp_programacion'])) {
+    $sumap = 0;
+    foreach ($form_state['values']['field_accion_esp_programacion'] as $id_programacion => $programacion) {
+      if (is_numeric($id_programacion)) {
+        for ($i = 0; $i < 12; $i++) {
+          if ($mes_inicio <= $i && $mes_final >= $i) {
+            $valor = $i ? 'value_' . $i : 'value';
+            $sumap += (float) $programacion[$valor];
+          }
+        }
+      }
+    }
+    if (!$sumap) {
+      form_set_error('field_accion_esp_programacion', t('La ProgramaciÃ³n Financiera de la AcciÃ³n especifica debe tener al menos un valor'));
+    }
+  }
+  $sumaf = 0;
+  //validamos el financiamiento
+  $first_field = FALSE;
+  if (count($form['#fields_financiamiento'])) {
+    foreach ($form['#fields_financiamiento'] as $field_id) {
+      $start = (float) $form_state['values'][$field_id][0]['value'];
+      $start = number_format($start, $form['#format_number']['format_number']['decimals'], '.', '');
+      $value = preg_replace('@[^-0-9]@', '', $start);
+      if ($start && $start != $value) {
+        form_set_error($field_id, t('Solo nÃºmeros enteros son permitidos en la fuente de financiamiento.'));
+      }
+      if ($value < 0) {
+        form_set_error($field_id, t('Solo nÃºmeros positivos son permitidos en la fuente de financiamiento.'));
+      }
+      if (!$first_field) {
+        $first_field = $field_id;
+      }
+      if (isset($form_state['values'][$field_id][0]['value'])) {
+        $sumaf += $form_state['values'][$field_id][0]['value'];
+      }
+    }
+  }
+  if ($first_field && $sumaf != $sumap) {
+    form_set_error($first_field, t('Las fuentes de financiamiento (@f_financiamiento) deben ser igual a la programaciÃ³n presupuestaria (@fuente)', array('@fuente' => number_format($sumap, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']), '@f_financiamiento' => number_format($sumaf, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']))));
+  }
+  //validamos que la suma de la programacion financiera sea + las otras acciones sean inferiores o iguales a la suma total del proyecto
+  $sumaT = $form['#montos'] +$sumap;
+  if ($suma_porc == 100 && $sumaT < $form['#proyecto']->field_proyecto_monto_anual[0]['value']) {
+    form_set_error('field_accion_esp_programacion', t('La suma de los montos de las acciones especificas (@monto) debe ser menor igual al monto anual del proyecto (@fuente) cuando las ponderaciones de las Acciones EspecÃ­ficas sume 100%', array('@fuente' => number_format($form['#proyecto']->field_proyecto_monto_anual[0]['value'], $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']), '@monto' => number_format($sumaT, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']))));    
+  }
+  elseif ($suma_porc < 100 && $sumaT == $form['#proyecto']->field_proyecto_monto_anual[0]['value']) {
+    form_set_error('field_accion_esp_ponderacion', t('La suma de las ponderaciones de la AcciÃ³n especifica debe ser menor o igual a 100% (@suma_porc % alcanzado) y el monto por asignar no es suficiente para nuevas Acciones (Monto Asignado: @monto_asignado Bs, Monto del proyecto: @monto_proyecto Bs)', array('@suma_porc' => number_format($suma_porc, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']), '@monto_asignado' => number_format($sumaT, $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']), '@monto_proyecto' => number_format($form['#proyecto']->field_proyecto_monto_anual[0]['value'], $form['#format_number']['format_number']['decimals'], $form['#format_number']['format_number']['dec_point'], $form['#format_number']['format_number']['thousands_sep']))));
+  }
+}
+
+/**
+ * Implementation of hook_theme_registry_alter().
+ */
+function accion_especifica_mcti_theme_registry_alter(&$theme_registry) {
+  if ($theme_registry['proyectos_operativos_accion_especifica_crear_form']) {    
+    $theme_registry['proyectos_operativos_accion_especifica_crear_form']['function'] = 'theme_proyectos_operativos_accion_especifica_mcti_crear_form';
+  }
+}
+
+/**
+ * tema a aplicar en el formulario proyectos_operativos_accion_especifica_crear_form
+ */
+function theme_proyectos_operativos_accion_especifica_mcti_crear_form($form) {
+$output = '';
+  if (!$form['#proyecto_completed']) {
+    $output .= '<div id="mensaje-mostrar" class="mensaje mensaje-mostrar" style="color:red;font-weight: bold;">' . $form['#mensaje_mostrar'] . '</div>';
+    $output .= '<fieldset><legend>' . t('DefiniciÃ³n de la AcciÃ³n Especifica') . '</legend>' . drupal_render($form['field_accion_titulo']) . drupal_render($form['field_accion_esp_fechai']) . drupal_render($form['field_accion_esp_fechaf']);$output .= drupal_render($form['field_accion_esp_ejecutor']) . drupal_render($form['field_accion_esp_bien']) . '</fieldset>';
+    $output .= '<fieldset><legend>' . t('DistribuciÃ³n de la Meta Fisica de la acciÃ³n Especifica') . '</legend>';
+    $output .= drupal_render($form['field_accion_esp_unidadm']);
+    if (isset($form['field_accion_esp_meta_m']) && $form['field_accion_esp_meta_f']) {
+      $output .= '<div id="meta-unidm-pers"><table id="unidm-persona" style="width:400px"><tr><th>' . $form['field_accion_esp_meta_m']['#title'] . '</th><th>' . $form['field_accion_esp_meta_f']['#title'] . '</th><th>' . t('Total') . '</th></tr><tr>';
+      $form['field_accion_esp_meta_m'][0]['value']['#title'] = '';
+      $form['field_accion_esp_meta_f'][0]['value']['#title'] = '';
+      $total = $form['field_accion_esp_meta_m'][0]['#value']['value'] + $form['field_accion_esp_meta_f'][0]['#value']['value'];
+      $output .= '<td>' . drupal_render($form['field_accion_esp_meta_m']) . '</td>';
+      $output .= '<td>' . drupal_render($form['field_accion_esp_meta_f']) . '</td>';
+      $output .= '<td style="width:100px; text-align: center"><div class="unidad_personas_total">' . number_format($total, $format_number['decimals'], $format_number['dec_point'], $format_number['thousands_sep']) . '</div></td></tr></table></div>';
+    }
+    $output .= drupal_render($form['field_accion_esp_ponderacion']);
+    $output .= drupal_render($form['field_accion_esp_metaf']);
+    $output .= '</fieldset>';
+    $output .= drupal_render($form['distribucion']);
+    $output .= '<fieldset><legend>' . t('ProgramaciÃ³n Financiera de la AcciÃ³n') . '</legend>' . drupal_render($form['field_accion_esp_programacion']);
+    $ftypes = array(
+      'tid' => t('Account'),
+      'value' => t('Ene'),
+      'value_1' => t('Feb'), 
+      'value_2' => t('Mar'), 
+      'value_3' => t('Abr'),
+      'value_4' => t('May'),
+      'value_5' => t('Jun'),
+      'value_6' => t('Jul'),
+      'value_7' => t('Aug'),
+      'value_8' => t('Sep'),
+      'value_9' => t('Oct'),
+      'value_10' => t('Nov'),
+      'value_11' => t('Dic'),
+    );
+    $output .= '<div style="width:2250px">';
+    $i = -1;
+    foreach ($ftypes as $ftype => $label) {
+      if($ftype != 'tid') {
+        $output .= '<div class = "field_accion_esp_programacion_m' . $i . '_field_total field_accion_esp_programacion_totales" style = "width:143px;float:left;margin-left:10px; border: 1px solid #D5D5D5;text-align:center;overflow:auto">0</div>';
+      }
+      else {
+        $output .= '<div style = "width:180px;float:left;margin-left:5px;text-align:right"><b>' . t('TOTAL') . '</b></div>';
+      }
+      $i++;
+    }
+    $output .= '<div class = "field_accion_esp_programacion_dato_field_total" style = "width:143px;float:left;margin-left:10px; border: 1px solid #D5D5D5;text-align:center;overflow:auto">0</div>';
+    $output .= '</div></fieldset>'; 
+    $rows = array();
+    $row = array();
+    $row1 = array();
+    $cantidad_campos = count($form['#arreglo_financiamiento']);
+    if (is_array($form['#arreglo_financiamiento']) && count($form['#arreglo_financiamiento'])) {
+      foreach ($form['#arreglo_financiamiento'] as $id => $macro) {
+        $row[] = array('data' => drupal_render($form[$id]), );
+        $row1[] = array('data' => drupal_render($form['total_' . $id]), );
+      }
+      $rows[] = $row;
+      $rows[] = $row1;
+      $row = array();
+      $row[] = array('data' => '<b>' . t('TOTAL') . ':</b>', 'colspan' => $cantidad_campos - 1, 'align' => 'right');
+      $row[] = array('data' => drupal_render($form['total_financiamiento']), );
+      $rows[] = $row;
+      $output .= '<fieldset><legend>' . t('Fuentes de Financiamiento') . '</legend>' . theme('table', array(), $rows) . '</fieldset>';
+    }
+    $localizacion = variable_get('proyectos_operativos_muestra_localizacion_accion', TRUE);
+    if ($localizacion) {
+      $output .= '<fieldset><legend>' . t('LocalizaciÃ³n GeogrÃ¡fica') . '</legend>'; 
+      $output .= drupal_render($form['field_accion_esp_localizacion']) . drupal_render($form['field_accion_esp_latitud']) . drupal_render($form['field_accion_esp_longitud']);
+      $output .= '</fieldset>';
+      $output .= drupal_render($form);
+    }
+ 
+    $geo = variable_get('proyectos_operativos_muestra_proyecto_ubicacion_geografica', TRUE);
+    if ($geo) {
+      $output .= '<fieldset><legend>' . t('LocalizaciÃ³n GeogrÃ¡fica de EjecuciÃ³n') . '</legend>'; 
+     // $output .= drupal_render($form['field_accion_esp_localizacion']) . drupal_render($form['field_accion_esp_latitud']) . drupal_render($form['field_accion_esp_longitud']);
+      $output .= drupal_render($form['field_accion_esp_geo']);
+      $output .= '</fieldset>';
+    }
+    $output .= drupal_render($form);
+  }
+  $header = array();
+  $cab = 6;
+  $header[] = array('data' => t('Nro')); 
+  $header[] = array('data' => t('Nombre')); 
+  $header[] = array('data' => t('Fecha de inicio'));
+  $header[] = array('data' => t('Fecha de Fin'));  
+  $header[] = array('data' => t('%')); 
+  $header[] = array('data' => t('AcciÃ³n'));
+  $rows = array(); 
+  $i = 1;
+  if (count($form['#acciones_especificas'])) {
+    $suma = 0;
+    foreach ($form['#acciones_especificas'] as $accion) {
+      if (isset($accion->nid)) {
+        $row = array();
+        $row[] = array('data' => $i,);
+        $row[] = array('data' => $accion->titulo_asignado,);
+        //Se cambia el formato de la fecha
+        $fecha = explode(' ', $accion->field_accion_esp_fechai[0]['value']);
+        $formato = explode('-', $fecha[0]);
+        $row[] = array('data' => $formato[2] . '/' . $formato[1] . '/' . $formato[0],);
+        //Se cambia el formato de la fecha
+        $fecha = explode(' ', $accion->field_accion_esp_fechaf[0]['value']);
+        $formato = explode('-', $fecha[0]);
+        $row[] = array('data' => $formato[2] . '/' . $formato[1] . '/' . $formato[0],);
+        $suma += $accion->field_accion_esp_ponderacion[0]['value'];
+        $row[] = array('data' => $accion->field_accion_esp_ponderacion[0]['value'],);
+        $links = array();
+        $links[] = l(t('Modificar'), 'proyectosopedit/' . $form['#proyecto']->nid . '/ae/' . $accion->nid . '/edit');
+        $links[] = l(t('Eliminar'), 'proyectosopedit/' . $form['#proyecto']->nid . '/ae/' . $accion->nid . '/remove');
+        $row[] = array('data' => theme('item_list', $links),);
+        $rows[] = $row;
+        $i++;
+      }
+    }
+  }
+  if (count($rows)) {
+    $output .= theme('table', $header, $rows);
+  }
+  //no mostrar el formulario si ya se alcanzo lo asignado
+  if ($form['#proyecto_completed']) {
+    $output .= drupal_render($form);
+  }
+  return $output;
+}
+
+/**
+ * Agrega el valor total de la accion especifica al campo field_accion_total_financia
+ */
+function proyectos_operativos_mcti_accion_especifica_crear_form_submit($form, &$form_state) {
+  $op = isset($form_state['values']['op']) ? $form_state['values']['op'] : '';
+  $node_type = content_types('accion_especifica');
+  if ($op != t('Cancelar')) {
+    if (isset($form_state['values']['field_accion_esp_programacion']) && count($form_state['values']['field_accion_esp_programacion'])) {
+      $sumap = 0;
+      foreach ($form_state['values']['field_accion_esp_programacion'] as $id_programacion => $programacion) {
+				//obtener la fecha de inicio y fin
+  			$mes = explode('-', $form_state['values']['field_accion_esp_fechai'][0]['value']);
+  			$mes_inicio = 0;
+  			if (count($mes)) {
+    			$mes_inicio = $mes[1] - 1;
+  			}
+ 			 //obtener la fecha de inicio y fin
+  		 $mes = explode('-', $form_state['values']['field_accion_esp_fechaf'][0]['value']);
+  		 $mes_final = 0;
+  		 if (count($mes)) {
+    		 $mes_final = $mes[1] - 1;
+  		 }
+       if (is_numeric($id_programacion)) {
+         for ($i = 0; $i < 12; $i++) {
+            if ($mes_inicio <= $i && $mes_final >= $i) {
+              $valor = $i ? 'value_' . $i : 'value';
+              $sumap += (float) $programacion[$valor];
+            }
+          }
+        }
+      }
+    }
+    $sumaf = 0;
+    //validamos el financiamiento
+    $first_field = FALSE;
+    if (count($form['#fields_financiamiento'])) {
+      foreach ($form['#fields_financiamiento'] as $field_id) {
+        $start = (float) $form_state['values'][$field_id][0]['value'];
+        $start = number_format($start, $form['#format_number']['format_number']['decimals'], '.', '');
+        $value = preg_replace('@[^-0-9]@', '', $start);
+        if (!$first_field) {
+          $first_field = $field_id;
+        }
+        if (isset($form_state['values'][$field_id][0]['value'])) {
+          $sumaf += $form_state['values'][$field_id][0]['value'];
+        }
+      }
+    }
+    $sumaT = $form['#montos'] + $sumap;
+    db_query("UPDATE {content_type_proyectos_operativos} SET field_proyecto_monto_anual_value = %d WHERE nid = %d", $sumaT, $form['#proyecto']->nid);
+    db_query("UPDATE {content_type_accion_especifica} SET	field_accion_total_financia_value = %d WHERE field_accion_esp_proyecto_nid = %d", $sumaT, $form['#proyecto']->nid);
+  }
+}
