Esempio n. 1
0
 public static function update($paquete)
 {
     if ($idCaja = BbiCaja::getIdCaja($paquete->getTituloVial())) {
         if ($caja = node_load($idCaja)) {
             $ewrapperCaja = entity_metadata_wrapper('node', $caja);
             //Le metemos la fecha, si no hay ninguan todavía...
             if (!isset($caja->field_caja_fec_primer_vial_lleno['und'][0]['value'])) {
                 $ewrapperCaja->field_caja_fec_primer_vial_lleno->set($paquete->getFechaVialLleno());
             }
             //Le sumamos 1 a viales llenos si no tienen ya fecha de extracción,
             //quiere decir que ya se metió en la tienda antes.
             $vial = node_load(bbiLab_getIdNodeByTitle($paquete->getTituloVial()));
             if (!isset($vial->field_vial_fecha_de_extracci_n['und'][0]['value'])) {
                 $vialesEnCaja = (int) $ewrapperCaja->field_caja_viales_llenos->value() + 1;
                 $ewrapperCaja->field_caja_viales_llenos->set((int) $vialesEnCaja);
                 //Ahora que sabemos que este vial es la primera vez que entra, se puede mandar un email al jefe...
                 $mensaje = 'Ha entrado el vial ' . $paquete->getTituloVial() . ' proveniente del ayuntamiento de ' . $paquete->getAyuntamiento() . ' del veterinario ' . $paquete->getVeterinario();
                 simple_mail_queue('*****@*****.**', '*****@*****.**', 'ADN Perros ' . 'Nuevo vial de ' . $paquete->getAyuntamiento(), $mensaje);
                 simple_mail_queue('*****@*****.**', '*****@*****.**', 'ADN Perros ' . 'Nuevo vial de ' . $paquete->getAyuntamiento(), $mensaje);
             }
             $ewrapperCaja->save();
             return TRUE;
         }
     }
     return FALSE;
 }
Esempio n. 2
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;
 }