Conjunto 7d9e4be en sipes


Ignorar:
Fecha y hora:
09/06/2016 11:31:25 (hace 8 años)
Autor:
eramirez <eramirez@…>
Branches:
stable, version-3.0
Children:
92f109b
Parents:
a20fcb5
Mensaje:

se modifico el modulo

Fichero:
1 editado

Leyenda

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

    r303fae2 r7d9e4be  
    4343    $node_type = content_types('accion_especifica');
    4444    $fields = $node_type['fields'];
    45                 foreach ($form['#parameters'] as $id => $proyecto) {
    46       if ($proyecto->type == 'accion_especifica') {
    47         $ae = $proyecto;
    48       }
    49     }
    50     if (!$ae) {
    51                 $ae_leido = new stdClass();
    52         $ae_leido->type = 'accion_especifica';
    53         $nid = 0;
    54           }
    55         else {
    56         $ae_leido = $ae;
    57                 $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'];
    58         $nid = $ae->nid;
    59         }
    60     //nid node
    61     foreach ($form['#parameters'] as $id => $proyectos) {
    62       if ($proyectos->type == 'proyectos_operativos') {
    63         $proyecto = $proyectos;
    64       }
    65     }
    66     if (!$proyecto) {
    67       $proyecto = new stdClass();
    68       $proyecto->type = 'proyectos_operativos';
    69     }
    70     else {
    71       $proyecto = $proyecto;
    72     }
    73     $geo = variable_get('proyectos_operativos_muestra_proyecto_ubicacion_geografica', TRUE);
    74     if ($geo) {
    75       //agregando el campo geo
    76       $arreglo = array(
    77         'field_accion_esp_geo' => 'field_accion_esp_geo',
    78       );
    79     }
    80     if (is_array($fields) && count($fields)) {
    81       foreach ($fields as $field_id => $field) {
    82         if (array_key_exists($field_id, $arreglo)) {
    83           $field_form[] = $field_id;
    84           $fields_form[] = $field_id;
    85         }
    86         elseif (variable_get('proyectos_operativos_ac_muestra_geo_' . $field_id, FALSE)) {
    87           $field_form[] = $field_id;
    88           $fields_form[] = $field_id;
    89         }
    90       }
    91     }
    92                 $ejecucion = 0;
    93           $acciones_especificas = array();
     45
     46    $proyecto = $form['#proyecto'];
     47    $ae_leido = $form['#node'];
     48    $ejecucion = 0;
    9449    $montos = 0;
    9550    $porcentajes = array();
    96     foreach ($proyecto->field_proyecto_accion_esp as $accion) {
     51    foreach($proyecto->field_proyecto_accion_esp as $accion) {
    9752      if ($accion['nid'] && $nid != $accion['nid']) {
    9853        $accion_load = node_load($accion['nid']);
    9954        if ($accion_load && $accion_load->type == 'accion_especifica') {
    10055          if ($accion_load->field_accion_esp_programacion[0]['tid']) {
    101             foreach ($accion_load->field_accion_esp_programacion as $programacion) {
    102               foreach ($programacion as $id_value => $mesp){
     56            foreach($accion_load->field_accion_esp_programacion as $programacion) {
     57              foreach($programacion as $id_value => $mesp){
    10358                if ($id_value != 'tid') {
    10459                  $montos +=$mesp;
     
    11166          $ejecucion += $accion_load->field_accion_esp_ponderacion[0]['value'];
    11267        }
    113           }
    114       elseif ($nid == $accion['nid']) {
    115           $acciones_especificas[$ae->nid] = $ae;
    116           }
    117     }
    118           $monto_restante = $form['#proyecto']->field_proyecto_monto_anual[0]['value'] - $montos;
     68      }
     69      elseif($nid == $accion['nid']) {
     70        $acciones_especificas[$ae->nid] = $ae;
     71      }
     72    }
    11973    $et = 100 - $ejecucion;
    120     if ($et != 100) {
    121             $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'])));
    122     }
    123     else {
    124       $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'])));
    125     }
    126                 $form['#proyectos_operativos_fields'] = array_merge($form['#proyectos_operativos_fields'] , $fields_form);
    127     if (is_array($field_form) && count($field_form)) {
    128       module_load_include('inc', 'content', 'includes/content.node_form');
    129       foreach ($field_form as $field_id) {
    130         $field = content_fields($field_id, 'accion_especifica');
    131         $form['#field_info'][$field_id] = $field;
    132         $form += (array) content_field_form($form, $form_state, $field);
    133       }
    134     }
    135     foreach ($form['#validate'] as $id => $name) {
    136             if ($name == 'proyectos_operativos_accion_especifica_crear_form_validate') {
    137                         $form['#validate'][$id] = 'proyectos_operativos_mcti_accion_especifica_crear_form_validate';
    138             }
    139         }
    140         $form['#submit'][] = 'proyectos_operativos_mcti_accion_especifica_crear_form_submit';
     74    $form['#mensaje_mostrar'] =  t('Quedan @asignar% de ponderación en las Acciones Específicas.', array('@asignar' => $et));
     75
     76    //agregando el campo geo
     77    if (variable_get('proyectos_operativos_muestra_proyecto_ubicacion_geografica', TRUE)) {
     78      $arreglo = array(
     79        'field_accion_esp_geo' => 'field_accion_esp_geo',
     80      );
     81      if (is_array($fields) && count($fields)) {
     82        foreach ($fields as $field_id => $field) {
     83          if (array_key_exists($field_id, $arreglo)) {
     84            $field_form[] = $field_id;
     85            $form['#proyectos_operativos_fields'][] = $field_id;
     86          }
     87          elseif (variable_get('proyectos_operativos_ac_muestra_geo_' . $field_id, FALSE)) {
     88            $field_form[] = $field_id;
     89            $form['#proyectos_operativos_fields'][] = $field_id;
     90          }
     91        }
     92      }
     93
     94     if (is_array($field_form) && count($field_form)) {
     95       module_load_include('inc', 'content', 'includes/content.node_form');
     96       foreach ($field_form as $field_id) {
     97         $field = content_fields($field_id, 'accion_especifica');
     98         $form['#field_info'][$field_id] = $field;
     99         $form += (array) content_field_form($form, $form_state, $field);
     100       }
     101     }
     102   }
     103   foreach ($form['#validate'] as $id => $name) {
     104     if ($name == 'proyectos_operativos_accion_especifica_crear_form_validate') {
     105       $form['#validate'][$id] = 'proyectos_operativos_mcti_accion_especifica_crear_form_validate';
     106     }
     107   }
     108   $nuevo_submit = array();
     109   foreach ($form['#submit'] as $id => $name) {
     110     if ($name == 'proyectos_operativos_accion_especifica_crear_form_submit') {
     111       $nuevo_submit[] = 'proyectos_operativos_mcti_accion_especifica_crear_form_submit';
     112     }
     113     $nuevo_submit[] = $name;
     114   }
     115   $form['#esplurianual'] = ($proyecto->field_proyecto_plurianual['value'] == 'SI') ? 1 : 0;
     116   $form['#submit'] = $nuevo_submit;
    141117  }
    142118}
     
    155131  drupal_add_js($proyectos_operativos_path . '/js/accion_especifica.js');
    156132  drupal_add_js($form['#format_number'], 'setting');
     133  drupal_add_js(array('accion_esp' => array('unidadmpers' => $form['#personas'])), 'setting');
    157134  //validamos que el porc sea mayor que cero
    158135  if (!$form_state['values']['field_accion_esp_ponderacion'][0]['value'] && $form_state['values']['field_accion_esp_ponderacion'][0]['value'] >= 100) {
    159136    form_set_error('field_accion_esp_ponderacion', t('La ponderaciones de la Acción especifica debe ser menor que 100'));
    160137  }
     138
    161139  //validamos que el porc sea mayor que cero
    162140  if (!$form_state['values']['field_accion_esp_ponderacion'][0]['value'] && $form_state['values']['field_accion_esp_ponderacion'][0]['value'] <= 0) {
     
    166144  $suma_porc = $form['#ejecucion'] + $form_state['values']['field_accion_esp_ponderacion'][0]['value'];
    167145  if ($suma_porc > 100) {
    168     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%'));
    169   }
     146    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%'));
     147  }
     148  // validamos que la cantidad de acciones permitidas cumpla con la minima permitida
     149  if (variable_get('accion_especifica_100_ponderation', 0) && $form_state['values']['field_accion_esp_ponderacion'][0]['value'] >= 100) {
     150    form_set_error('field_accion_esp_ponderacion', t('La ponderación de la Acción especifica debe ser menor o igual a 100%'));
     151  }
    170152  //validamos que la ponderacion no se encuentre repetida
    171153  if (!variable_get('accion_especifica_allow_ponderation', 0) && isset($form['#porcentajes'][$form_state['values']['field_accion_esp_ponderacion'][0]['value']])) {
     
    211193      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'));
    212194    }
     195    /*
     196    $personas = $form['#personas'];
     197    if (count($personas) && isset($personas[$form_state['values']['field_accion_esp_unidadm'][0]['value']])) {
     198      $totalpersonas = $form_state['values']['field_accion_esp_meta_m'][0]['value'] + $form_state['values']['field_accion_esp_meta_f'][0]['value'];
     199      if ($totalpersonas != $suma) {
     200        form_set_error('field_accion_esp_meta_m', t('El total de Distribución de la Meta Fisíca de la Acción especifica debe ser igual a la cantidad de personas'));
     201      }
     202    }
     203   */
    213204  }
    214205  //validamos la accion especifica
    215206  if (isset($form_state['values']['field_accion_esp_programacion']) && count($form_state['values']['field_accion_esp_programacion'])) {
    216207    $sumap = 0;
    217     foreach ($form_state['values']['field_accion_esp_programacion'] as $id_programacion => $programacion) {
     208    foreach($form_state['values']['field_accion_esp_programacion'] as $id_programacion => $programacion) {
    218209      if (is_numeric($id_programacion)) {
    219210        for ($i = 0; $i < 12; $i++) {
     
    233224  $first_field = FALSE;
    234225  if (count($form['#fields_financiamiento'])) {
    235     foreach ($form['#fields_financiamiento'] as $field_id) {
     226    foreach($form['#fields_financiamiento'] as $field_id) {
    236227      $start = (float) $form_state['values'][$field_id][0]['value'];
    237228      $start = number_format($start, $form['#format_number']['format_number']['decimals'], '.', '');
     
    253244  if ($first_field && $sumaf != $sumap) {
    254245    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']))));
    255   }
    256   //validamos que la suma de la programacion financiera sea + las otras acciones sean inferiores o iguales a la suma total del proyecto
    257   $sumaT = $form['#montos'] +$sumap;
    258   if ($suma_porc == 100 && $sumaT < $form['#proyecto']->field_proyecto_monto_anual[0]['value']) {
    259     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']))));   
    260   }
    261   elseif ($suma_porc < 100 && $sumaT == $form['#proyecto']->field_proyecto_monto_anual[0]['value']) {
    262     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']))));
    263246  }
    264247}
     
    277260 */
    278261function theme_proyectos_operativos_accion_especifica_mcti_crear_form($form) {
    279 $output = '';
     262  $output = '';
    280263  if (!$form['#proyecto_completed']) {
    281264    $output .= '<div id="mensaje-mostrar" class="mensaje mensaje-mostrar" style="color:red;font-weight: bold;">' . $form['#mensaje_mostrar'] . '</div>';
     
    342325      $output .= '<fieldset><legend>' . t('Fuentes de Financiamiento') . '</legend>' . theme('table', array(), $rows) . '</fieldset>';
    343326    }
    344     $localizacion = variable_get('proyectos_operativos_muestra_localizacion_accion', TRUE);
     327    $localizacion = variable_get('proyectos_operativos_muestra_accion_esp', TRUE);
    345328    if ($localizacion) {
    346329      $output .= '<fieldset><legend>' . t('Localización Geográfica') . '</legend>';
     
    353336    if ($geo) {
    354337      $output .= '<fieldset><legend>' . t('Localización Geográfica de Ejecución') . '</legend>';
    355      // $output .= drupal_render($form['field_accion_esp_localizacion']) . drupal_render($form['field_accion_esp_latitud']) . drupal_render($form['field_accion_esp_longitud']);
    356338      $output .= drupal_render($form['field_accion_esp_geo']);
    357339      $output .= '</fieldset>';
     
    412394  $node_type = content_types('accion_especifica');
    413395  if ($op != t('Cancelar')) {
    414     if (isset($form_state['values']['field_accion_esp_programacion']) && count($form_state['values']['field_accion_esp_programacion'])) {
    415       $sumap = 0;
    416       foreach ($form_state['values']['field_accion_esp_programacion'] as $id_programacion => $programacion) {
    417                                 //obtener la fecha de inicio y fin
    418                         $mes = explode('-', $form_state['values']['field_accion_esp_fechai'][0]['value']);
    419                         $mes_inicio = 0;
    420                         if (count($mes)) {
    421                         $mes_inicio = $mes[1] - 1;
    422                         }
    423                          //obtener la fecha de inicio y fin
    424                  $mes = explode('-', $form_state['values']['field_accion_esp_fechaf'][0]['value']);
    425                  $mes_final = 0;
    426                  if (count($mes)) {
    427                  $mes_final = $mes[1] - 1;
    428                  }
    429        if (is_numeric($id_programacion)) {
    430          for ($i = 0; $i < 12; $i++) {
    431             if ($mes_inicio <= $i && $mes_final >= $i) {
    432               $valor = $i ? 'value_' . $i : 'value';
    433               $sumap += (float) $programacion[$valor];
    434             }
    435           }
    436         }
    437       }
    438     }
    439     $sumaf = 0;
    440396    //validamos el financiamiento
    441397    $first_field = FALSE;
     
    453409      }
    454410    }
    455     $sumaT = $form['#montos'] + $sumap;
    456     db_query("UPDATE {content_type_proyectos_operativos} SET field_proyecto_monto_anual_value = %d WHERE nid = %d", $sumaT, $form['#proyecto']->nid);
    457     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);
     411    $sumaT = $form['#montos'] + $sumaf;
     412//drupal_set_message('la suma' . $sumaT . '. la suma' . ',' . $sumaf . ', montos' . $form['#montos']);
     413    $form['#proyecto']->field_proyecto_monto_anual[0]['value'] = $sumaT;
     414    if (!$form['#esplurianual']) {
     415      $form['#proyecto']->field_proyecto_total[0]['value'] = $sumaT;
     416    }
    458417  }
    459418}
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.