Ejemplo n.º 1
0
 public static function update($paquete)
 {
     if ($vial = node_load(bbiLab_getIdNodeByTitle($paquete->getTituloVial()))) {
         $ewrapperVial = entity_metadata_wrapper('node', $vial);
         if ($paquete->getEstado()) {
             $ewrapperVial->field_vial_estado->set((int) $paquete->getEstado());
         }
         if ($paquete->getAyuntamiento()) {
             $ewrapperVial->field_ayuntamiento->set((int) bbiLab_getUserByName($paquete->getAyuntamiento()));
         }
         if ($paquete->getVeterinario()) {
             $ewrapperVial->field_veterinario->set((int) bbiLab_getUserByName($paquete->getVeterinario()));
         }
         if ($paquete->getTipoVial()) {
             $ewrapperVial->field_vial_tipo_de_vial->set((int) $paquete->getTipoVial());
         }
         if ($paquete->getLocalizacion()) {
             $ewrapperVial->field_vial_localizacion->set((int) $paquete->getLocalizacion());
         }
         if ($paquete->getFechaVialLleno()) {
             $ewrapperVial->field_vial_fecha_de_extracci_n->set($paquete->getFechaVialLleno());
         }
         if ($paquete->getFechaInforme()) {
             $ewrapperVial->field_vial_fecha_fin_analisis->set($paquete->getFechaInforme());
         }
         $ewrapperVial->save();
         return TRUE;
     }
     return FALSE;
 }
Ejemplo n.º 2
0
 public static function insert($paquete)
 {
     //Creamos la chapa
     $values = array('type' => 'chapa', 'uid' => 1, 'status' => 1, 'comment' => 0, 'promote' => 0);
     $entity = entity_create('node', $values);
     $ewrapperChapa = entity_metadata_wrapper('node', $entity);
     $ewrapperChapa->title->set($paquete->getTituloChapa());
     $ewrapperChapa->field_chapa_tipo_chapa->set((int) $paquete->getTipoChapa());
     if ($paquete->getDigitoControl()) {
         $ewrapperChapa->field_chapa_digito_control->set($paquete->getDigitoControl());
     }
     $ewrapperChapa->field_ayuntamiento->set((int) bbiLab_getUserByName($paquete->getAyuntamiento()));
     $ewrapperChapa->field_chapa_vial->set((int) bbiLab_getIdNodeByTitle($paquete->getTituloVial()));
     $ewrapperChapa->save();
     if (node_load($ewrapperChapa->getIdentifier())) {
         return true;
     }
 }
Ejemplo n.º 3
0
 public static function process_item($item, $serverName)
 {
     $resultado = FALSE;
     $data = $item->data;
     $paquete = $data->paquete;
     //Si no existe el vial se meterá en la cola de errores.
     if ($vial = node_load(bbiLab_getIdNodeByTitle($paquete->getTituloVial()))) {
         //Vamos a ver antes de guardar los datos si el vial que viene tiene fecha de extracción,
         //si no la tiene es que en segcan no devería existir y hay que crearla nueva,
         //si tiene fecha de extracción se envia para actualizar datos.
         if (isset($vial->field_vial_fecha_de_extracci_n['und'][0]['value'])) {
             $operacionParaSegcan = 2;
             //Lo actualizamos
         } else {
             $operacionParaSegcan = 1;
             //Lo creamos
         }
         foreach ($data->operaciones as $operacion) {
             switch ($operacion) {
                 case 1:
                     //Crear????? nada de momento
                     break;
                 case 2:
                     //actualizar
                     //Primero vamos a ver si es del mismo ayuntamiento y veterinario.
                     if ($vial->field_ayuntamiento['und'][0]['target_id'] != $paquete->getAyuntamiento()) {
                         watchdog('conector', 'Se ha intentado actualizar el vial ' . $paquete->getTituloVial() . ' pero no coincidían los ayntamientos.');
                         return false;
                     }
                     if ($vial->field_veterinario['und'][0]['target_id'] != $paquete->getVeterinario()) {
                         watchdog('conector', 'Se ha intentado actualizar el vial ' . $paquete->getTituloVial() . ' pero no coincidía el veternianrio.');
                         return false;
                     }
                     //Antes de guardar el vial vamos a actualizar la caja si viene de un segeco.
                     //Miramos le fecha de vial lleno para saberlo.
                     if ($paquete->getFechaVialLleno()) {
                         BbiCaja::update($paquete);
                     }
                     $resultado = BbiVial::update($paquete);
                     //Si viene el titulo de la chapa la creamos o la editamos si ya está en tienda
                     if ($paquete->getTituloChapa()) {
                         //Mirar si existe la chapa en el vial y se actualiza los datos
                         if ($idChapa = BbiVial::getChapa(bbiLab_getIdNodeByTitle($paquete->getTituloVial()))) {
                             $resultado = BbiChapa::update($paquete, $idChapa);
                         } else {
                             //Si no existe se crea la chapa
                             $resultado = BbiChapa::insert($paquete);
                         }
                     }
                     //No tiene fecha extraccion... y viene de algún segeco
                     // hay que eliminar la chapa, si la hubiese
                     //Esto quiere decir que se ha editado la solicitud y se ha cambiado de vial.
                     if (!$paquete->getFechaVialLleno() && $serverName != 'conectorSegcan') {
                         if ($vial = node_load(bbiLab_getIdNodeByTitle($paquete->getTituloVial()))) {
                             if ($idChapa = BbiVial::getChapa($vial->nid)) {
                                 watchdog('prueba vial editado', 'chapa que se va a eliminar ' . $idChapa);
                                 //Si teien chapa la eliminamos
                                 node_delete($idChapa);
                                 watchdog('prueba vial editado', 'chapa eliminada ' . $idChapa);
                                 //ahora limpiamos el vial
                                 $vial->field_vial_fecha_de_extracci_n['und'] = NULL;
                                 $vial->field_vial_estado['und'] = NULL;
                                 $vial->field_vial_localizacion['und'][0]['value'] = 3;
                                 node_save($vial);
                                 watchdog('prueba vial editado', 'vial se ha quitado la fecha de extracción ' . $vial->title);
                                 //Le restamos 1 a la caja.
                                 $caja = node_load(BbiCaja::getIdCaja($paquete->getTituloVial()));
                                 watchdog('prueba vial editado', 'se le va a restar uno a la caja ' . $caja->field_caja_viales_llenos['und'][0]['value']);
                                 $caja->field_caja_viales_llenos['und'][0]['value'] -= 1;
                                 node_save($caja);
                                 watchdog('prueba vial editado', 'se le ha restado una a la caja ' . $caja->field_caja_viales_llenos['und'][0]['value']);
                             }
                         }
                     }
                     //Si viene de segcan habrá que mirar de que ayntamiento es y mandarlo para allí
                     //Si viene de algún ayntamiento hay que mandarlo a segcan
                     $tipoSegeco = BbiConector::getTipoDeSegeco($serverName);
                     if ($tipoSegeco == 'Segcan') {
                         if ($ayto = $paquete->getAyuntamiento()) {
                             //Operaciones para los segecos,
                             $data->operaciones = array(2, 4);
                             //Update vial y chapa si la hubiese
                             BbiBuffer::insert_item_into_buffer($data, $ayto);
                             return TRUE;
                         } else {
                             return FALSE;
                         }
                     } else {
                         //Hay que mandar si es actualizar el vial o es insertar un vial nuevo.
                         //Si viene de algún ayto lo mandamos a segcan, cuando haya mas segcan ya veremos
                         $data->operaciones = array($operacionParaSegcan);
                         BbiBuffer::insert_item_into_buffer($data, 'segcan');
                         return TRUE;
                     }
                     break;
             }
         }
     } else {
         watchdog('conector', 'Se ha intentado actualizar el vial ' . $paquete->getTituloVial() . ' pero no existía en la tienda');
     }
     return $resultado;
 }
Ejemplo n.º 4
0
 public static function setViales($tituloCaja, $primerNumeroVial, $ultimoNumeroVial)
 {
     $posicion = 1;
     $idCaja = bbiLab_getIdNodeByTitle($tituloCaja);
     for ($i = $primerNumeroVial; $i <= $ultimoNumeroVial; $i++) {
         $titulo = 'CA-AAA';
         $titulo = $titulo . $i;
         $vial = node_load(bbiLab_getIdNodeByTitle($titulo));
         //Eliminamos todas las colecciones de campo que tenia de antes
         foreach ($vial->field_vial_caja['und'] as $idCollection) {
             //Cargamos el nodo....
             $collection = field_collection_item_load($idCollection['value']);
             //Checkeamos que sea correcto
             if ($collection->item_id) {
                 entity_delete_multiple('field_collection_item', array($idCollection));
             }
         }
         //Le metemos que está pistoleteado
         if ($vial->type == 'vial') {
             $vial->field_vial_pistoleteado['und'][0]['value'] = 1;
             //borramos todas las collecciones vacias
             $vial->field_vial_caja['und'] = null;
             $vial->body = '';
             node_save($vial);
         }
         //Aquí creamos la colección de campos y la guardamos
         $values['field_name'] = 'field_vial_caja';
         $values["field_vial_caja_posicion"] = array(LANGUAGE_NONE => array(array('value' => $posicion)));
         $values["field_caja_fisica"] = array(LANGUAGE_NONE => array(array('target_id' => $idCaja)));
         //print_r($values);
         $field_collection_item = entity_create('field_collection_item', $values);
         $field_collection_item->setHostEntity('node', $vial);
         $field_collection_item->save();
         $posicion++;
     }
 }