/** * Retorna un array ( status, OER ); * */ public function saveMy() { $RET = array('OER' => null, 'status' => null); //Aquest guardar, no guarda l'objecte en sí, sinó que crida un mètode per igualar-lo amb l'hospici. $this->updateObject(); $RET['OER'] = $this->getObject(); //Mirem que hagi entrat o bé el nom d'usuari o bé el codi. if ($RET['OER']->getNomReserva() == "" && is_null($RET['OER']->getUsuariId())) { throw new Exception("Selecciona un usuari de l'Hospici o bé entra el seu nom."); } //Si hem entrat el codi d'usuari, guardem la info amb les dades de l'usuari. if (!is_null($RET['OER']->getUsuariId())) { $OU = UsuarisPeer::retrieveByPK($RET['OER']->getUsuariId()); if ($OU instanceof Usuaris) { $RET['OER']->setNomReserva($OU->getNomComplet()); $RET['OER']->setEmailReserva($OU->getEmail()); $RET['OER']->setTelefonReserva($OU->getTelefonString()); } else { throw new Exception('L\'usuari seleccionat, no s\'ha trobat a la base de dades.'); } } elseif ($RET['OER']->getNomReserva() != "") { //No cal fer res, perquè se suposa que les dades ja s'han entrat correctament i quan guardem quedarà guardada. } else { throw new Exception('Hi ha algun problema amb el nom o codi d\'usuari.'); } //D'entrada és correcte, així que si l'entrada és nova, fem la compra. if ($this->isNew()) { //Si és nou, fem la nova compra $RET = EntradesReservaPeer::setCompraEntrada($RET['OER']); switch ($RET['status']) { case -1: throw new Exception('Hi ha hagut algun problema buscant l\'horari. Informeu-ne a informatica@casadecultura.org'); break; case -2: throw new Exception('Hi ha hagut algun problema buscant l\'activitat. Informeu-ne a informatica@casadecultura.org'); break; case -3: throw new Exception('Hi ha hagut algun problema buscant el preu. Informeu-ne a informatica@casadecultura.org'); break; case -4: throw new Exception('Aquest usuari ja ha comprat una entrada per aquest espectacle.'); break; case -5: throw new Exception('Aquesta activitat ja no té entrades disponibles o no en queden prous de lliures.'); break; case -6: throw new Exception('Error de TPV.'); break; case -7: throw new Exception('El número d\'entrades comprades ha de ser superior a 0.'); break; } } else { $RET['status'] = 0; //Marquem l'status a 0 perquè no és nou... només és una modificació } //Si no hi ha cap error, guardem. if ($RET['status'] >= 0) { $RET['OER']->save(); } return $RET; }