Example #1
0
 /**
  * Funcion que se le pasa un array de viales especial y te devuelve solo los llenos
  * @param array $viales
  * @return boolean
  */
 public static function getVialesLlenos($viales)
 {
     $vialesLlenos = array();
     //Si quieren solo los viales llenos
     foreach ($viales as $idVial => $title) {
         //Vamos a buscar los viales que tienen fecha de extracción
         $query = db_select('node', 'n');
         $query->join('field_data_field_vial_fecha_de_extracci_n', 'fvfe', 'n.nid = fvfe.entity_id');
         $query->join('field_data_field_vial_tipo_de_vial', 'tipoVial', 'n.nid = tipoVial.entity_id');
         $query->join('field_data_field_ayuntamiento', 'ayun', 'n.nid = ayun.entity_id');
         $query->leftJoin('field_data_field_veterinario', 'veter', 'n.nid = veter.entity_id');
         $result = $query->fields('n', array('nid'))->fields('tipoVial', array('field_vial_tipo_de_vial_value'))->fields('ayun', array('field_ayuntamiento_target_id'))->fields('veter', array('field_veterinario_target_id'))->condition('nid', $idVial, '=')->execute();
         if ($result) {
             while ($record = $result->fetchAssoc()) {
                 $vialesLlenos[$record['nid']]['titulo'] = $title;
                 $vialesLlenos[$record['nid']]['tipoDeVial'] = $record['field_vial_tipo_de_vial_value'];
                 $vialesLlenos[$record['nid']]['ayuntamiento'] = bbiLab_getUserById($record['field_ayuntamiento_target_id']);
                 $vialesLlenos[$record['nid']]['veterinario'] = bbiLab_getUserById($record['field_veterinario_target_id']);
             }
         } else {
             //no tiene viales llenos
             return FALSE;
         }
     }
     return $vialesLlenos;
 }
Example #2
0
 public static function send_buffer_salida()
 {
     //Vamos a recorrer los conectores activos
     $serversNames = BbiConector::getServerNameActivos();
     foreach ($serversNames as $uid => $serverName) {
         $queue = DrupalQueue::get('bufferSalida' . $serverName);
         $remote = new CodeServer($serverName);
         $remote->config->request_timeout = 20;
         //Tiempo de espera de lectura en segundos, especificado por un float (p.ej. 10.5).Por omisión se utiliza el valor del ajuste default_socket_timeout de php.ini.
         $time = microtime(TRUE);
         watchdog('pruebatiempo', 'inicio total ' . $time);
         $max = (int) BbiConector::getMaxTimeExecution(bbiLab_getUserById($uid));
         while (($item = BbiBuffer::get_item_from_buffer($queue)) && microtime(TRUE) - $time < $max) {
             watchdog('pruebatiempo', 'inicio una prueba ' . (microtime(TRUE) - $time));
             if ($item) {
                 if ($remote->write_element_from_buffer(serialize($item))) {
                     BbiBuffer::remove_item_from_buffer($queue, $item);
                     //Lo ha metido, lo borramos del buffer de salida
                 } else {
                     $item = $item ? $item : 'no hay elemento';
                     BbiBuffer::insert_item_error_buffer($serverName, $item);
                     // Ha fallado lo metemos en el buffer de errores de salida específico.
                 }
             }
         }
     }
 }