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; }
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; } }
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; }
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++; } }