Esempio n. 1
0
 public function guardar($formData)
 {
     $db = $this->etiquetasTableGateway->adapter;
     $con = $db->getDriver()->getConnection();
     $con->beginTransaction();
     $etiqueta = new Etiquetas();
     $etiqueta->exchangeArray($formData);
     $etiquetasDAO = new EtiquetasDAO($this->etiquetasTableGateway);
     try {
         $resExistente = $etiquetasDAO->obtenerPorNombre($etiqueta->getEtiquetasNombre());
         $objetosEtiquetasDAO = new ObjetosEtiquetasDAO($this->objetosEtiquetasTableGateway);
         if ($resExistente->count() == 0) {
             //guarda la etiqueta
             $eti = $etiquetasDAO->guardar($etiqueta);
             $bjetosEtiquetas = new ObjetosEtiquetas();
             $bjetosEtiquetas->setObjetosId($formData["objetos_id"]);
             $bjetosEtiquetas->setEtiquetasId($eti);
             // guarda la relacion
             $relacion = $objetosEtiquetasDAO->guardar($bjetosEtiquetas);
         } else {
             foreach ($resExistente as $key => $value) {
                 $res = $value;
             }
             $relacion = $objetosEtiquetasDAO->obtenerPorRelacion($formData["objetos_id"], $res->getEtiquetasId());
             if ($relacion->count() == 0) {
                 //solo relaciona la etiqueta
                 $bjetosEtiquetas = new ObjetosEtiquetas();
                 $bjetosEtiquetas->setObjetosId($formData["objetos_id"]);
                 $bjetosEtiquetas->setEtiquetasId($res->getEtiquetasId());
                 $relacion = $objetosEtiquetasDAO->guardar($bjetosEtiquetas);
             }
         }
         $con->commit();
     } catch (\Exception $e) {
         $con->rollback();
         $eti = 0;
     }
     unset($etiquetasDAO);
     unset($etiqueta);
     return $eti;
 }