Ejemplo n.º 1
0
 public static function getViales($idCaja, $estado = 'todos')
 {
     //dpm(get_defined_vars());
     $viales = array();
     $vialesLlenos = array();
     $vialesVacios = array();
     //Todos los viales de la caja
     if (!($viales = BbiCaja::getTodosLosViales($idCaja))) {
         return false;
     }
     // vamos a buscar los viales llenos y los vacios
     if ($estado != 'todos') {
         $vialesLlenos = BbiVial::getVialesLlenos($viales);
         $vialesVacios = BbiCaja::quitarVialesLLenosDelArray($viales, $vialesLlenos);
     }
     //Si quieren todos los viales de la caja se los doy
     if ($estado == 'todos') {
         return $viales;
     } elseif ($estado == 'llenos') {
         return $vialesLlenos;
     } elseif ($estado == 'vacios') {
         return $vialesVacios;
     }
 }
Ejemplo 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;
 }