Conjunto c43ea01 en sipes


Ignorar:
Fecha y hora:
18/08/2017 11:32:26 (hace 7 años)
Autor:
Sipes Apn <root@…>
Branches:
stable
Children:
71baefb
Parents:
36310ea
Mensaje:

se mejoro la funcion de seleccion de los responsables

Fichero:
1 editado

Leyenda

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

    r4efc6f2 rc43ea01  
    4343    'type' => MENU_CALLBACK,
    4444  );
    45   $items['proyectos_operativos_mcti_proyecto_basico_form_responsables'] = array(
    46     'title' => 'JS utilities',
    47     'page callback' => 'proyectos_operativos_mcti_proyecto_basico_form_responsables_js_util',
    48     'access arguments' => array('ver planificador'),
    49     'type' => MENU_CALLBACK,
    50   );
    5145  $items['proyectos_operativos_mcti_proyecto_basico_form_cargar_responsables'] = array(
    5246    'title' => 'JS utilities',
     
    128122      '#default_value' => variable_get('proyectos_operativos_muestra_proyecto_descripcion', TRUE),
    129123    );
     124    $form['basicos']['proyectos_operativos_muestra_ubicaci_interna'] = array(
     125      '#type' => 'checkbox',
     126      '#title' => t('Recolectar el la ubicación del proyecto.'),
     127      '#default_value' => variable_get('proyectos_operativos_muestra_ubicaci_interna', TRUE),
     128    );
    130129    $form['basicos']['comuna'] = array(
    131130      '#title' => t('Comunas'),
     
    134133      '#siffix' => '</div>',
    135134    );
    136     $form['basicos']['comuna']['proyectos_operativos_muestra_codig_comuna'] = array(
     135    $form['basicos']['comuna']['proyectos_operativos_muestra_datos_comuna'] = array(
    137136      '#type' => 'checkbox',
    138       '#title' => t('Recolectar el codigo de la comuna.'),
    139       '#default_value' => variable_get('proyectos_operativos_muestra_codig_comuna', TRUE),
    140     );
    141     $form['basicos']['comuna']['proyectos_operativos_muestra_ubicacin_comuna'] = array(
    142       '#type' => 'checkbox',
    143       '#title' => t('Recolectar la ubicacion de la comuna.'),
    144       '#default_value' => variable_get('proyectos_operativos_muestra_ubicacin_comuna', TRUE),
    145     );
    146     $form['basicos']['comuna']['proyectos_operativos_muestra_name_comuna'] = array(
    147       '#type' => 'checkbox',
    148       '#title' => t('Recolectar el nombre de la comuna.'),
    149       '#default_value' => variable_get('proyectos_operativos_muestra_name_comuna', TRUE),
     137      '#title' => t('Recolectar los datos de la comuna.'),
     138      '#default_value' => variable_get('proyectos_operativos_muestra_datos_comuna', TRUE),
    150139    );
    151140    $form['basicos']['responsables']['proyectos_operativos_muestra_responsables'] = array(
     
    634623        '#suffix' => '</div>',
    635624      );
    636       $ente_agregar = $form['#parameters'][3];
    637       $ente_planificador = node_load(1298);
    638       if ($proyecto && $proyecto->nid && $proyecto->field_proyecto_ente[0]['nid']) {
    639         $ente_planificador = ente_planificador_leer_ente_planificadores($proyecto->field_proyecto_ente[0]['nid']);
    640       }
    641       else {
    642         $ente = usuario_tiene_ente($user->uid);
    643         if ($ente && $ente->nid) {
    644           $ente_planificador = ente_planificador_leer_ente_planificadores($ente->nid);
    645         }
    646         elseif($ente_agregar && user_access('admin planificador')) {
    647           $ente_planificador = ente_planificador_leer_ente_planificadores($ente_agregar);
    648         }
    649       }
    650       $options[$ente_planificador->nid] = $ente_planificador->title;
    651       $form['responsables']['field_proyecto_entes'] = array(
    652         '#title' => t('Insitución'),
    653         '#type' => 'select',
    654         '#options' => $options,
    655         '#default_value' => $options,
    656         '#prefix' => '<div id="field_proyecto_ente_datos_basicos">',
    657         '#suffix' => '</div>',
     625      $ente_planificador = $form['#ente_planificador'];
     626
     627      $arreglo = array(
     628        'gerente' => array('field_proyecto_nombre_gere', 'field_proyecto_cedul_gere', 'field_proyecto_corre_gere', 'field_proyecto_telef_gere'),
     629        'tecnico' => array('field_proyecto_nom_r_tec', 'field_proyecto_ced_r_tec', 'field_proyecto_cor_r_tec', 'field_proyecto_tel_r_tec', 'field_proyecto_und_r_tec'),
     630        'registrador' => array('field_proyecto_nom_r_reg', 'field_proyecto_ced_r_reg', 'field_proyecto_cor_r_reg', 'field_proyecto_tel_r_reg'),
     631        'administrativo' => array( 'field_proyecto_nom_r_adm', 'field_proyecto_ced_r_adm', 'field_proyecto_cor_r_adm', 'field_proyecto_tel_r_adm', 'field_proyecto_und_r_adm'),
    658632      );
    659       $arreglo = array();
    660       $tipos = array(
    661         'gerente' => 'gerente',
    662         'tecnico' => 'tecnico',
    663         'registrador' => 'registrador',
    664         'administrativo' => 'administrativo',
    665       );
    666       $arreglo['gerente'] = array(
    667         0 => 'field_proyecto_nombre_gere',
    668         1 => 'field_proyecto_cedul_gere',
    669         2 => 'field_proyecto_corre_gere',
    670         3 => 'field_proyecto_telef_gere',
    671       );
    672       $arreglo['tecnico'] = array(
    673         0 => 'field_proyecto_nom_r_tec',
    674         1 => 'field_proyecto_ced_r_tec',
    675         2 => 'field_proyecto_cor_r_tec',
    676         3 => 'field_proyecto_tel_r_tec',
    677         4 => 'field_proyecto_und_r_tec',
    678       );
    679       $arreglo['registrador'] = array(
    680         0 => 'field_proyecto_nom_r_reg',
    681         1 => 'field_proyecto_ced_r_reg',
    682         2 => 'field_proyecto_cor_r_reg',
    683         3 => 'field_proyecto_tel_r_reg',
    684       );
    685       $arreglo['administrativo'] = array(
    686         0 => 'field_proyecto_nom_r_adm',
    687         1 => 'field_proyecto_ced_r_adm',
    688         2 => 'field_proyecto_cor_r_adm',
    689         3 => 'field_proyecto_tel_r_adm',
    690         4 => 'field_proyecto_und_r_adm',
    691       );
     633
    692634      $fields_form_administrativo = array();
    693 
    694       $query["gerente"] = db_query("SELECT DISTINCT(pp.field_proyecto_cedul_gere_value) as field_cedula, pp.field_proyecto_nombre_gere_value as field_nombre, pp.field_proyecto_corre_gere_email as field_email, pp.field_proyecto_telef_gere_value as field_tele FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.status=1 AND pp.vid=n.vid ORDER BY pp.field_proyecto_cedul_gere_value DESC", $ente_planificador->nid);
    695 
    696       $query["tecnico"] = db_query("SELECT DISTINCT(pp.field_proyecto_ced_r_tec_value) as field_cedula, pp.field_proyecto_nom_r_tec_value as field_nombre, pp.field_proyecto_cor_r_tec_email as field_email, pp.field_proyecto_tel_r_tec_value as field_tele, pp.field_proyecto_und_r_tec_value as field_unidad  FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.status=1 AND pp.vid=n.vid ORDER BY pp.field_proyecto_ced_r_tec_value DESC", $ente_planificador->nid);
    697 
    698       $query["registrador"] = db_query("SELECT DISTINCT(pp.field_proyecto_ced_r_reg_value) as field_cedula, pp.field_proyecto_nom_r_reg_value as field_nombre, pp.field_proyecto_cor_r_reg_email as field_email, pp.field_proyecto_tel_r_reg_value as field_tele FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.status=1 AND pp.vid=n.vid ORDER BY pp.field_proyecto_nom_r_reg_value DESC", $ente_planificador->nid);
    699 
    700       $query["administrativo"] = db_query("SELECT DISTINCT(pp.field_proyecto_ced_r_adm_value) as field_cedula, field_proyecto_nom_r_adm_value as field_nombre, pp.field_proyecto_cor_r_adm_email as field_email, pp.field_proyecto_tel_r_adm_value as field_tele, pp.field_proyecto_und_r_adm_value as field_unidad FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.status=1 AND pp.vid=n.vid ORDER BY pp.field_proyecto_ced_r_adm_value DESC", $ente_planificador->nid);
    701      
    702       $field_form = array();
    703       $fields_form = array();
    704       $fields_extra_form1 = array();
    705       $fields_extra_form1[] = 'field_proyecto_ente';
    706 
    707       foreach ($tipos as $tips => $tip) {
    708         $tam = '';
    709         $prefixC = '';
    710         $count = 0;
     635      foreach ($arreglo as $tipo => $values) {
    711636        $rows = array();
    712637        $options = array();
    713         $options[0] = t('Seleccione');
    714         while ($row = db_fetch_object($query[$tip])) {
    715           $options[$row->field_cedula] = $row->field_nombre .'('. $row->field_cedula .')';
    716           $rows[$row->field_cedula] = array(
    717             'name' => $row->field_nombre,
    718             'cedula' => $row->field_cedula,
    719             'email' => $row->field_email,
    720             'phone' => $row->field_tele,
    721             'unidad' => $row->field_unidad,
    722           );
    723         }
    724         $resposables['responsables'][$tip] = $rows;
    725         drupal_add_js($resposables, 'setting');
    726 
    727         $options[] = t('Nuevo');
    728         $form['responsables']['default_'.$tip] = array(
     638        $options[0] = t('Nuevo');
     639        $query = proyectos_operativos_mcti_search_responsable($tipo, $ente_planificador);
     640        while ($row = db_fetch_object($query)) {
     641          if (isset($row->field_cedula)) {
     642            $options[$row->field_cedula] = $row->field_nombre .'('. $row->field_cedula .')';
     643            $rows[$row->field_cedula][] = $row->field_nombre;
     644            $rows[$row->field_cedula][] = $row->field_cedula;
     645            $rows[$row->field_cedula][] = $row->field_email;
     646            $rows[$row->field_cedula][] = $row->field_tele;
     647            $rows[$row->field_cedula][] =$row->field_unidad;
     648          }
     649        }
     650        $resposables['responsables'] = $rows;
     651       drupal_add_js($resposables, 'setting');
     652
     653        $form['responsables']['entes_' . $tipo] = array(
     654          '#title' => t('Responsable ' . $tipo),
     655          '#type' => 'fieldset',
     656          '#prefix' => '<div id="wrapper-proyectos-resposab-' . $tipo . '">',
     657          '#suffix' => '</div>',
     658        );
     659        $form['responsables']['entes_' . $tipo]['datos_' . $tipo] = array(
    729660          '#type' => 'select',
    730           '#title' => t('Cargar datos del '.$tip),
    731           '#default_value' => isset($form['#node']->field_proyecto_ced_r_adm['und'][0]['value']) ? $form['#node']->field_proyecto_ced_r_adm['und'][0]['value'] : 0,
     661          '#title' => t('Cargar datos del ' . $tipo),
    732662          '#options' => $options,
    733           '#prefix' => '<fieldset id="wrapper-'.$tip.'-datos"><legend>' . t('Responsable '.$tip ) . '<span class="form-required" title="Este campo es obligatorio."> *</span></legend>',
     663          '#attributes' => array('class' => 'responsable responsable-field-' . $tipo),
    734664        );
     665        $count = 0;
     666        $prefix = '';
     667        $prefixC = '<table><tr>';
    735668        if (count($fields)) {
    736           foreach ($arreglo[$tip] as $field_id => $field) {
    737             $prefixC .= '<th>' . $fields[$field]['widget']['label'] . '</th>';
    738           }
    739           foreach ($arreglo[$tip] as $field_id => $field) {
    740             foreach ($form['#node']->{$field} as $id => $campo) {
    741               if ($form['#node']->{$field}[$id]['value']) {
    742                   $default = $form['#node']->{$field}[$id]['value'];   
    743                 }
    744                 elseif ($form['#node']->{$field}[$id]['email']) {
    745                   $default = $form['#node']->{$field}[$id]['email'];
    746                 }
    747                 else {
    748                   $default = $form_state['values'][$field];
    749                 }
    750               }
    751               $prefix = '';
    752               if ($count == 0) {
    753                 $prefix = '<div id="default_'.$tip.'"><table><tr>' . $prefixC . '</tr><tr><td>';
    754               }
    755               else {
    756                 $prefix .= '<td>';
    757               }
    758               $form['responsables'][$field] = array(
    759                 '#type' => 'textfield',
    760                 '#title' => $fields[$field]['widget']['label'],
    761                 '#required' => $fields[$field]['required'],
    762                 '#maxlength' => $fields[$field]['max_length'],
    763                 '#size' => $fields[$field]['size'],
    764                 '#weight' => $fields[$field]['weight'],
    765                 '#description' => $fields[$field]['description'],
    766                 '#default_value' => $default,
    767                 '#prefix' => $prefix,
    768                 '#suffix' => '</td>',
    769                 '#attributes' => array('class' => $tip),
    770               );
    771 
    772               if($field == 'field_proyecto_cedul_gere' || $field == 'field_proyecto_ced_r_tec' || $field == 'field_proyecto_ced_r_reg' || $field == 'field_proyecto_ced_r_adm') {
    773                 $form['responsables'][$field]['#attributes']['placeholder'] = t( 'VXXXXXXXX' );
    774               }
    775               if($field == 'field_proyecto_telef_gere' || $field == 'field_proyecto_tel_r_tec' || $field == 'field_proyecto_tel_r_reg' || $field == 'field_proyecto_tel_r_adm') {
    776                 $form['responsables'][$field]['#attributes']['placeholder'] = t( 'xxxx-xxxx-xxx' );
    777               }
    778               $aux = $field;
    779               $count++;
     669            foreach ($values as $field_id) {
     670            $prefixC .= '<th>' . $fields[$field_id]['widget']['label'] . '</th>';
     671          }
     672          $prefixC .= '</tr><tr><td>';
     673          if ($count) {
     674            $prefixC = '';
     675          }
     676          $field_id = '';
     677            foreach ($values as $id) {
     678            $field_id = $id;
     679            $default = '';
     680
     681           if (isset($form_state['values']['datos_' . $tipo])) {
     682               $default = $rows[$form_state['values']['datos_' . $tipo]][$count];
    780683            }
    781           $form['responsables'][$aux]['#suffix'] .= '</tr>';
    782           $form['responsables'][$aux]['#suffix'] .= '</table></div></fieldset>';
    783         }
    784       } //fin del foreach
    785      
    786       $form['responsables'][$aux]['#suffix'] .= '</div>';
    787 
    788       foreach ($tipos as $tips => $tip) {
    789         if (is_array($fields) && count($fields)) {
    790           foreach ($fields as $field_id => $field) {
    791             foreach ($arreglo[$tip] as $clave => $campo) {
    792              if ($campo == $field_id) {
    793                 $form['#proyectos_operativos_fields'][] = $field_id;
    794                 $field_form[] = $field_id;
    795                 $fields_form[] = $field_id;
    796               }
    797               elseif (variable_get('proyectos_operativos_muestra_gerente_' . $field_id, FALSE)) {
    798                 $form['#proyectos_operativos_fields'][] = $field_id;
    799                 $field_form[] = $field_id;
    800                 $fields_form[] = $field_id;
    801               }
    802             }
    803           }
    804         }
    805       }
     684            else {
     685                    if ($form['#node']->{$field_id}[0]['value']) {
     686                          $default = $form['#node']->{$field_id}[0]['value'];   
     687                        }
     688                        elseif ($form['#node']->{$field_id}[0]['email']) {
     689                          $default = $form['#node']->{$field_id}[0]['email'];
     690                        }
     691            }
     692            $form['responsables']['entes_' . $tipo][$field_id] = array(
     693              '#type' => 'textfield',
     694              '#required' => $fields[$field_id]['required'],
     695              '#maxlength' => $fields[$field_id]['max_length'],
     696              '#size' => $fields[$field_id]['size'],
     697              '#weight' => $fields[$field_id]['weight'],
     698              '#description' => $fields[$field_id]['description'],
     699              '#default_value' => $default,
     700              '#attributes' => array('class' => 'responsable-field default-' . $tipo),
     701            );
     702            if (!$count) {
     703              $form['responsables']['entes_' . $tipo][$field_id]['#prefix'] = $prefixC;
     704            }
     705            else {
     706              $form['responsables']['entes_' . $tipo][$field_id]['#prefix'] .= '<td>';
     707              $form['responsables']['entes_' . $tipo][$field_id]['#suffix'] .= '</td>';
     708            }
     709            $count++;
     710          }
     711          $form['responsables']['entes_' . $tipo][$field_id]['#suffix'] = '</tr></table>';
     712        }
     713        //garantizar el guardar los valores
     714        foreach ($values as $field_id) {
     715          if (is_array($fields) && count($fields)) {
     716              if ($field_id) {
     717              $form['#proyectos_operativos_fields'][] = $field_id;
     718              $field_form[] = $field_id;
     719              $fields_form[] = $field_id;
     720                  }
     721            elseif (variable_get('proyectos_operativos_muestra_gerente_' . $field_id, FALSE)) {
     722              $form['#proyectos_operativos_fields'][] = $field_id;
     723              $field_form[] = $field_id;
     724              $fields_form[] = $field_id;
     725            }
     726              }
     727        }
     728      }
     729
    806730      $form['#validate'][] = 'proyectos_operativos_mcti_proyecto_basico_form_responsables_validate';
    807731      foreach ($form['#submit'] as $id => $name) {
     
    819743    $fields_extra_form1 = array();
    820744    $arreglo = array();
    821     $codig_comuna = variable_get('proyectos_operativos_muestra_codig_comuna', TRUE);
     745    $codig_comuna = variable_get('proyectos_operativos_muestra_datos_comuna', TRUE);
    822746    if ($codig_comuna) {
    823747      $form['#proyectos_operativos_fields_extra'][] = 'field_proyecto_codigo_comu';
    824748      $arreglo['field_proyecto_codigo_comu'] = 'field_proyecto_codigo_comu';
    825749    }
    826     $ubicacin_comuna = variable_get('proyectos_operativos_muestra_ubicacin_comuna', TRUE);
     750    $ubicacin_comuna = variable_get('proyectos_operativos_muestra_datos_comuna', TRUE);
    827751    if ($ubicacin_comuna) {
    828752      $form['#proyectos_operativos_fields_extra'][] = 'field_proyecto_ubicaci_comu';
    829753      $arreglo['field_proyecto_ubicaci_comu'] = 'field_proyecto_ubicaci_comu';
    830754    }
    831     $nombre_comuna = variable_get('proyectos_operativos_muestra_name_comuna', TRUE);
     755    $nombre_comuna = variable_get('proyectos_operativos_muestra_datos_comuna', TRUE);
    832756    if ($nombre_comuna) {
    833757      $form['#proyectos_operativos_fields_extra'][] = $fields_extra_form1;
     
    13621286          }
    13631287          else {
    1364             $form_state['values'][$campo] = array(array('value' => $form_state['values'][$campo]));
     1288                  $form_state['values'][$campo] = array(array('value' => $form_state['values'][$campo]));
    13651289          }
    13661290        }
     
    17201644        $output .= drupal_render($form['field_proyect_probl_abord']);
    17211645      }
    1722       if($causas) { 
     1646      if($causas) {
    17231647        $output .= drupal_render($form['field_proyect_cau_abord']);
    17241648      }
    17251649      $output .= '</fieldset>';
    1726     } 
     1650    }
    17271651    $output .= '</fieldset>';
    17281652  }
     
    18111735  }
    18121736  $output .= '</fieldset>';
    1813 
     1737 
    18141738  //ubicacion internacional
    18151739  if (variable_get('proyectos_operativos_muestra_ubicaci_interna', TRUE)) {
     
    18201744  $output .= '</fieldset>';
    18211745  //ubicacion comunal
    1822   $codig_comuna = variable_get('proyectos_operativos_muestra_codig_comuna', TRUE);
    1823   $ubicacin_comuna = variable_get('proyectos_operativos_muestra_ubicacin_comuna', TRUE);
    1824   $nombre_comuna = variable_get('proyectos_operativos_muestra_name_comuna', TRUE);
    1825   if($codig_comuna || $ubicacin_comuna || $nombre_comuna) {
     1746  $datos_comuna = variable_get('proyectos_operativos_muestra_datos_comuna', TRUE);
     1747  if($datos_comuna) {
    18261748    $output .= '<fieldset><legend>' . t('Localización Comunal') . '</legend>';
    18271749    $output .= drupal_render($form['field_proyecto_codigo_comu']);
     
    18591781  }
    18601782  if (variable_get('proyectos_operativos_muestra_enunciado_problema', TRUE)) {
    1861     $output .= '<fieldset><legend>' . t('Enunciado del Problema') . '</legend>' . drupal_render($form['field_proyecto_causas']) . drupal_render($form['field_proyecto_problemas']) . drupal_render($form['field_proyecto_consecuencias']);
    18621783    if (count($form['#fields_form_ip_in'])) {
    18631784      foreach($form['#fields_form_ip_in'] as $id_c) {
     
    23422263
    23432264/**
    2344  * Carga los datos de los responsables del proyecto
    2345  */
    2346 function proyectos_operativos_mcti_proyecto_basico_form_responsables_js_util($tipo) {
    2347   $form_state = array(
    2348     'submitted' => FALSE,
    2349   );
    2350   $form_build_id = $_POST['form_build_id'];
    2351   // Add the new element to the stored form. Without adding the element to the
    2352   // form, Drupal is not aware of this new elements existence and will not
    2353   // process it. We retreive the cached form, add the element, and resave.
    2354   $form = form_get_cache($form_build_id, $form_state);
    2355  
    2356   $nid = $_POST['field_proyecto_ente'];
    2357   $node_type = content_types('proyectos_operativos');
    2358   $fields = $node_type['fields'];
    2359   $query_ins = db_query("SELECT nid, title FROM {node} WHERE type='ente_planificador' AND status=1");
    2360   while ($row = db_fetch_object($query_ins)) {
    2361     $instituciones[$row->nid] = $row->title;
    2362   }
    2363  
    2364   $new_form['responsables'] = array(
    2365     '#title' => t(''),
    2366     '#type' => 'fieldset',
    2367   );
    2368   /*$new_form['responsables']['field_proyecto_ente'] = array(
    2369     '#title' => t('Insitución'),
    2370     '#type' => 'select',
    2371     '#options' => $instituciones,
    2372     '#ahah' => array(
    2373       'path' => 'proyectos_operativos_mcti_proyecto_basico_form_responsables/responsables',
    2374       'wrapper' => 'wrapper-proyectos-resposab',
    2375       'method' => 'replace',
    2376       'progress' => array('type' => 'throbber', 'message' => t('Please wait...')),
    2377     ),
    2378     '#prefix' => '<div id="field_proyecto_ente_datos_basicos">',
    2379     '#suffix' => '</div>',
    2380   );
    2381       */
    2382   $arreglo = array();
    2383   $tipos = array(
    2384     'gerente' => 'gerente',
    2385     'tecnico' => 'tecnico',
    2386     'registrador' => 'registrador',
    2387     'administrativo' => 'administrativo',
    2388   );
    2389   $arreglo['gerente'] = array(
    2390     0 => 'field_proyecto_nombre_gere',
    2391     1 => 'field_proyecto_cedul_gere',
    2392     2 => 'field_proyecto_corre_gere',
    2393     3 => 'field_proyecto_telef_gere',
    2394   );
    2395   $arreglo['tecnico'] = array(
    2396     0 => 'field_proyecto_nom_r_tec',
    2397     1 => 'field_proyecto_ced_r_tec',
    2398     2 => 'field_proyecto_cor_r_tec',
    2399     3 => 'field_proyecto_tel_r_tec',
    2400     4 => 'field_proyecto_und_r_tec',
    2401   );
    2402   $arreglo['registrador'] = array(
    2403     0 => 'field_proyecto_nom_r_reg',
    2404     1 => 'field_proyecto_ced_r_reg',
    2405     2 => 'field_proyecto_cor_r_reg',
    2406     3 => 'field_proyecto_tel_r_reg',
    2407   );
    2408   $arreglo['administrativo'] = array(
    2409     0 => 'field_proyecto_nom_r_adm',
    2410     1 => 'field_proyecto_ced_r_adm',
    2411     2 => 'field_proyecto_cor_r_adm',
    2412     3 => 'field_proyecto_tel_r_adm',
    2413     4 => 'field_proyecto_und_r_adm',
    2414   ); 
    2415  
    2416   $query['gerente'] = db_query("SELECT DISTINCT(pp.vid), pp.field_proyecto_nombre_gere_value as field_proyecto_nombre_gere, pp.field_proyecto_cedul_gere_value as field_proyecto_cedul_gere FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.vid=pp.vid AND n.status=1 ORDER BY pp.vid asc", $nid);
    2417   $query['tecnico'] = db_query("SELECT DISTINCT(pp.vid), pp.field_proyecto_nom_r_tec_value as field_proyecto_nom_r_tec, pp.field_proyecto_ced_r_tec_value as field_proyecto_ced_r_tec FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.vid=pp.vid AND n.status=1 ORDER BY pp.vid asc", $nid);
    2418   $query['registrador'] = db_query("SELECT DISTINCT(pp.vid), pp.field_proyecto_nom_r_reg_value as field_proyecto_nom_r_reg, pp.field_proyecto_ced_r_reg_value as field_proyecto_ced_r_reg FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.vid=pp.vid AND n.status=1 ORDER BY pp.vid asc", $nid);
    2419   $query['administrativo'] = db_query("SELECT DISTINCT(pp.vid), pp.field_proyecto_nom_r_adm_value as field_proyecto_nom_r_adm, pp.field_proyecto_ced_r_adm_value as field_proyecto_ced_r_adm FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.vid=pp.vid AND n.status=1 ORDER BY pp.vid asc", $nid);
    2420 
    2421   foreach ($tipos as $tip) {
    2422     $options = array();
    2423     $options[0] = t('Seleccione');
    2424     $count = 0;
    2425     $prefixC = '';
    2426     while ($row = db_fetch_object($query[$tip]) ) {
    2427       if ($row->$arreglo[$tip][0] != null || $row->$arreglo[$tip][1] != null) {
    2428         $options[$row->vid] = $row->$arreglo[$tip][0] . '('. $row->$arreglo[$tip][1] .')';
    2429       }
    2430     }
    2431     $options[$row->vid + 1] = t('Nuevo');
    2432     $new_form['responsables']['default_'.$tip] = array(
    2433       '#type' => 'select',
    2434       '#title' => t('Cargar datos del '.$tip),
    2435       '#options' => $options,
    2436       '#prefix' => '<fieldset id="wrapper-'.$tip.'-datos"><legend>' . t('Responsable '.$tip ) . '</legend>',
    2437     );
    2438     $new_form['responsables']['default_'.$tip]['#prefix'] .= '<div id="default_'.$tip.'_select">';
    2439     $new_form['responsables']['default_'.$tip]['#suffix'] .= '</div>';
    2440     if (count($fields)) {
    2441       foreach ($arreglo[$tip] as $field_id => $field) {
    2442         $prefixC .= '<th>' . $fields[$field]['widget']['label'] . '</th>';
    2443       }
    2444       foreach ($arreglo[$tip] as $field_id => $field) {
    2445         $prefix = '';
    2446         if ($count == 0) {
    2447           $prefix = '<div id="default_'.$tip.'"><table><tr>' . $prefixC . '</tr><tr><td>';
    2448         }
    2449         else {
    2450           $prefix .= '<td>';
    2451         }
    2452         $new_form['responsables'][$field] = array(
    2453           '#type' => 'textfield',
    2454           '#required' => $fields[$field]['required'],
    2455           '#maxlength' => $fields[$field]['max_length'],
    2456           '#size' => $fields[$field]['size'],
    2457           '#weight' => $fields[$field]['weight'],
    2458           '#description' => $fields[$field]['description'],
    2459           '#prefix' => $prefix,
    2460           '#suffix' => '</td>',
    2461         );
    2462         $aux = $field;
    2463         $count++;
    2464       }
    2465       $new_form['responsables'][$aux]['#suffix'] .= '</tr>';
    2466       $new_form['responsables'][$aux]['#suffix'] .= '</table></div></fieldset>';
    2467     }
    2468   }
    2469  
    2470   $form[$tipo] = $new_form;
    2471   form_set_cache($form_build_id, $form, $form_state);
    2472   $form += array(
    2473     '#post' => $_POST,
    2474     '#programmed' => FALSE,
    2475   );
    2476   // Rebuild the form.
    2477  
    2478   $form = form_builder($_POST['form_id'], $form, $form_state);
    2479   // Render the new output.
    2480   $new_form = $form[$tipo];
    2481   unset($new_form['#prefix'], $new_form['#suffix']); // Prevent duplicate wrappers.
    2482   $output = drupal_render($new_form);
    2483   print drupal_to_js(array('data' => $output, 'status' => true));
    2484   exit();
    2485 }
    2486 
    2487 /**
    24882265 * Implementation of proyectos_operativos_search_ac_display().
    24892266 * Muestra la lista de proyectos disponibles.
     
    28332610  return theme('proyectos_operativos_mcti_ficha_proyecto', $proyecto);
    28342611}
     2612
     2613/**
     2614 * Buscar valores por defecto para los responsable.
     2615 */
     2616function proyectos_operativos_mcti_search_responsable($tipo, $ente_planificador) {
     2617  if ($tipo == 'gerente') {
     2618      $query = db_query("SELECT DISTINCT(pp.field_proyecto_cedul_gere_value) as field_cedula, pp.field_proyecto_nombre_gere_value as field_nombre, pp.field_proyecto_corre_gere_email as field_email, pp.field_proyecto_telef_gere_value as field_tele FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.status=1 AND pp.vid=n.vid ORDER BY pp.field_proyecto_cedul_gere_value DESC", $ente_planificador->nid);
     2619  }
     2620  else if ($tipo == 'tecnico') {
     2621      $query = db_query("SELECT DISTINCT(pp.field_proyecto_ced_r_tec_value) as field_cedula, pp.field_proyecto_nom_r_tec_value as field_nombre, pp.field_proyecto_cor_r_tec_email as field_email, pp.field_proyecto_tel_r_tec_value as field_tele, pp.field_proyecto_und_r_tec_value as field_unidad  FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.status=1 AND pp.vid=n.vid ORDER BY pp.field_proyecto_ced_r_tec_value DESC", $ente_planificador->nid);
     2622  }
     2623  else if ($tipo == 'registrador') {
     2624      $query = db_query("SELECT DISTINCT(pp.field_proyecto_ced_r_reg_value) as field_cedula, pp.field_proyecto_nom_r_reg_value as field_nombre, pp.field_proyecto_cor_r_reg_email as field_email, pp.field_proyecto_tel_r_reg_value as field_tele FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.status=1 AND pp.vid=n.vid ORDER BY pp.field_proyecto_nom_r_reg_value DESC", $ente_planificador->nid);
     2625  }
     2626  else if ($tipo == 'administrativo') {
     2627    $query = db_query("SELECT DISTINCT(pp.field_proyecto_ced_r_adm_value) as field_cedula, field_proyecto_nom_r_adm_value as field_nombre, pp.field_proyecto_cor_r_adm_email as field_email, pp.field_proyecto_tel_r_adm_value as field_tele, pp.field_proyecto_und_r_adm_value as field_unidad FROM {node} as n INNER JOIN {proyectos_operativos} as p ON n.nid=p.nid INNER JOIN {content_type_proyectos_operativos} as pp ON pp.nid = p.nid WHERE n.type='proyectos_operativos' AND p.ente=%d AND n.status=1 AND pp.vid=n.vid ORDER BY pp.field_proyecto_ced_r_adm_value DESC", $ente_planificador->nid);
     2628  }
     2629  return $query;
     2630}
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.