コード例 #1
0
ファイル: UserManager.php プロジェクト: blitzik/vycetky
 /**
  * @param User $user
  * @param Invitation $invitation
  * @return void
  * @throws Runtime\DuplicateUsernameException
  * @throws Runtime\DuplicateEmailException
  * @throws Runtime\InvitationNotFoundException
  * @throws Runtime\InvitationExpiredException
  * @throws Runtime\InvitationTokenMatchException
  * @throws \DibiException
  */
 public function registerNewUser(User $user, Invitation $invitation)
 {
     if (!$user->isDetached()) {
         throw new InvalidArgumentException('Only detached instances of Entity ' . User::class . ' can pass.');
     }
     $this->checkInvitation($user->email, $invitation->token);
     try {
         $this->transaction->begin();
         $this->userRepository->persist($user);
         $this->removeInvitation($invitation);
         $this->transaction->commit();
     } catch (\DibiException $e) {
         if ($e->getCode() == 1062) {
             try {
                 $this->userRepository->checkUsername($user->username);
             } catch (Runtime\UserAlreadyExistsException $usernameException) {
                 $this->transaction->rollback();
                 throw new Runtime\DuplicateUsernameException();
             }
             try {
                 $this->userRepository->checkEmail($user->email);
             } catch (Runtime\UserAlreadyExistsException $emailException) {
                 $this->transaction->rollback();
                 throw new Runtime\DuplicateEmailException();
             }
         }
         $this->transaction->rollback();
         Debugger::log($e, Debugger::ERROR);
         throw $e;
     }
 }
コード例 #2
0
 /**
  * Override BundlableLabelableBaseModelWithAttributes::changeType() to update
  * current location "subclass" (ie. type) value when type change is used.
  * This should be invoked by any model that can be used to indicate object
  * storage location. This includes, for now at least, ca_loans, ca_movements, 
  * ca_occurrences and ca_objects_x_storage_locations.
  *
  * @param mixed $pm_type The type_id or code to change the current type to
  * @return bool True if change succeeded, false if error
  */
 public function changeType($pm_type)
 {
     if (!$this->getPrimaryKey()) {
         return false;
     }
     // row must be loaded
     if (!($vb_already_in_transaction = $this->inTransaction())) {
         $this->setTransaction($o_t = new Transaction($this->getDb()));
     }
     if ($vn_rc = parent::changeType($pm_type)) {
         $o_db = $this->getDb();
         $o_db->query("\n\t\t\t\t\tUPDATE ca_objects SET current_loc_subclass = ? \n\t\t\t\t\tWHERE \n\t\t\t\t\t\tcurrent_loc_class = ? AND current_loc_id = ?\n\t\t\t\t", array($this->get('type_id'), $this->tableNum(), $this->getPrimaryKey()));
         if ($o_db->numErrors()) {
             $this->errors = $o_db->errors;
             if (!$vb_already_in_transaction) {
                 $o_t->rollback();
             }
             return false;
         }
     }
     if (!$vb_already_in_transaction) {
         $o_t->commit();
     }
     return $vn_rc;
 }
コード例 #3
0
ファイル: ItemFacade.php プロジェクト: blitzik/vycetky
 /**
  * @param ListingItem $listingItem
  * @return ListingItem
  * @throws ListingItemDayAlreadyExistsException
  * @throws \DibiException
  */
 public function saveListingItem(ListingItem $listingItem)
 {
     try {
         $this->transaction->begin();
         $this->listingItemRepository->persist($listingItem);
         $this->localityRepository->saveLocalityToUserList($listingItem->locality, $listingItem->listing->getRowData()['userID']);
         $this->transaction->commit();
         return $listingItem;
     } catch (\DibiException $e) {
         $this->transaction->rollback();
         if ($e->getCode() == 1062) {
             throw new ListingItemDayAlreadyExistsException();
         }
         Debugger::log($e, Debugger::ERROR);
         throw $e;
     }
 }
コード例 #4
0
 public function commit()
 {
     $atomDao = new BaseDao("CertifierTransactionAtom");
     $atom = $atomDao->getPattern();
     $atom->transFid = $this->getId();
     $list = $atomDao->search($atom);
     foreach ($list as $element) {
         $element->delete();
     }
     parent::commit();
 }
コード例 #5
0
ファイル: match.php プロジェクト: jthemphill/tournament
 public function report($wins, $opponentWins)
 {
     if (!$this->awaitingResult()) {
         $msg = 'Tried to report when not awaiting result.';
         throw new IllegalStateException($msg);
     }
     $t = new Transaction();
     $entries = [$this->playerId => $wins, $this->opponentId => $opponentWins];
     foreach ($entries as $playerId => $playerWins) {
         $sql = 'UPDATE player_match SET wins = ' . Q($playerWins) . ' WHERE match_id = ' . Q($this->matchId) . ' AND player_id = ' . Q($playerId);
         $t->execute($sql);
     }
     $t->commit();
 }
コード例 #6
0
ファイル: widget.php プロジェクト: randyibarrola/active
function deleteWidget($id)
{
    try {
        $transaction = new Transaction();
        $result = DAOFactory::getAfiliadoWidgetDAO()->delete($id);
        $transaction->commit();
        return $result;
    } catch (Exception $e) {
        print_r($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #7
0
ファイル: busqueda.php プロジェクト: randyibarrola/active
function insertBusquedaDisponibilidad($data)
{
    try {
        $transaction = new Transaction();
        $busqueda = DAOFactory::getBusquedaDisponibilidadDAO()->prepare($data);
        $id = DAOFactory::getBusquedaDisponibilidadDAO()->insert($busqueda);
        $transaction->commit();
        return $id;
    } catch (Exception $e) {
        var_dump($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #8
0
ファイル: faq.php プロジェクト: randyibarrola/active
function deleteFaq($id)
{
    try {
        $transaction = new Transaction();
        $faq = DAOFactory::getFaqDAO()->load($id);
        DAOFactory::getFaqDAO()->delete($id);
        $transaction->commit();
        return true;
    } catch (Exception $e) {
        var_dump($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #9
0
ファイル: MessagesFacade.php プロジェクト: blitzik/vycetky
 /**
  * @param array $messages Key => recipientID, Value = Message entity or array of messages
  * @throws InvalidArgumentException
  * @throws \DibiException
  * @return array
  */
 public function sendMessages(array $messages)
 {
     $ex = new InvalidArgumentException('Only non-persisted instances of ' . Message::class . ' can pas.');
     $msgs = [];
     foreach ($messages as $recipientID => $recipientMessages) {
         Validators::assert($recipientID, 'numericint');
         if (is_array($recipientMessages)) {
             foreach ($recipientMessages as $message) {
                 if (!($message instanceof Message and $message->isDetached())) {
                     throw $ex;
                 }
                 $msgs[] = $message;
             }
         } else {
             // recipientMessages contains only one message
             if (!($recipientMessages instanceof Message and $recipientMessages->isDetached())) {
                 throw $ex;
             }
             $msgs[] = $recipientMessages;
         }
     }
     try {
         $this->transaction->begin();
         $this->messageRepository->saveMessages($msgs);
         unset($msgs);
         $usersMessages = [];
         foreach ($messages as $recipientID => $recipientMessages) {
             if (is_array($recipientMessages)) {
                 foreach ($recipientMessages as $message) {
                     $recipientMessage = new UserMessage($message, $recipientID);
                     $usersMessages[] = $recipientMessage;
                 }
             } else {
                 $recipientMessage = new UserMessage($recipientMessages, $recipientID);
                 $usersMessages[] = $recipientMessage;
             }
         }
         $this->userMessageRepository->sendMessagesToRecipients($usersMessages);
         $this->transaction->commit();
         return $usersMessages;
     } catch (\DibiException $e) {
         $this->transaction->rollback();
         Debugger::log($e, Debugger::ERROR);
         throw $e;
     }
 }
コード例 #10
0
 public function commit($auth = NULL)
 {
     $args = func_get_args();
     if ($auth != Transaction::SIGNATURE) {
         return Transaction::commit();
     }
     if (!$this->txn) {
         return FALSE;
     }
     if ($this->lock) {
         return FALSE;
     }
     $res = (bool) $this->__call(__FUNCTION__, array());
     if (!$res) {
         return $res;
     }
     $this->txn = FALSE;
     return $res;
 }
コード例 #11
0
ファイル: condiciones.php プロジェクト: randyibarrola/active
function deleteCondicion($id, $transactional = true)
{
    try {
        if ($transactional) {
            $transaction = new Transaction();
        }
        DAOFactory::getHotelCondicionDAO()->deleteByCondicionId($id);
        DAOFactory::getCondicionDAO()->delete($id);
        if ($transactional) {
            $transaction->commit();
        }
        return $id;
    } catch (Exception $e) {
        var_dump($e);
        if ($transactional && $transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #12
0
ファイル: events.php プロジェクト: jthemphill/tournament
 public function drop($playerId)
 {
     $t = new Transaction();
     // Award any outstanding match to the opposing player.
     $sql = 'SELECT match_id ' . 'FROM player_match ' . 'WHERE wins IS NULL AND player_id = ' . Q($playerId);
     $matchId = D()->value($sql, null);
     if ($matchId !== null) {
         $sql = 'UPDATE player_match ' . 'SET wins = 0 ' . 'WHERE match_id = ' . Q($matchId) . ' AND player_id = ' . Q($playerId);
         $t->execute($sql);
         $sql = 'UPDATE player_match ' . 'SET wins = 1 ' . 'WHERE match_id = ' . Q($matchId) . ' AND player_id <> ' . Q($playerId);
         $t->execute($sql);
     }
     // Drop player from any unstarted events.
     $sql = 'DELETE pe ' . 'FROM player_event AS pe ' . 'INNER JOIN event AS e ON pe.event_id = e.id ' . 'WHERE NOT started AND player_id = ' . Q($playerId);
     $t->execute($sql);
     // Drop player from any started events.
     $sql = 'UPDATE player_event ' . 'SET dropped = TRUE ' . 'WHERE player_id = ' . Q($playerId) . ' AND event_id IN (SELECT event_id FROM event WHERE NOT finished)';
     $t->execute($sql);
     return $t->commit();
 }
コード例 #13
0
ファイル: project.php プロジェクト: TdroL/piotrszkaluba.pl
 public function action_update(Params $param)
 {
     $this->content->bind('form', $torn);
     $project = Jelly::select('project')->link($param->id)->load();
     if (!$project->loaded()) {
         throw new Error404_Exception();
     }
     $torn = new Torn($project);
     if ($torn->check()) {
         try {
             Transaction::begin();
             $project->set($_FILES + $_POST);
             $project->save();
             Transaction::commit();
             $this->request->redirect(Route::get('protected')->uri(array('controller' => 'project')));
         } catch (Validate_Exception $e) {
             Transaction::rollback();
             $torn->catch_errors($e);
         }
     }
 }
コード例 #14
0
ファイル: factura.php プロジェクト: randyibarrola/active
function updateFactura($id, $data = array(), $trasactional = true)
{
    try {
        if ($trasactional) {
            $transaction = new Transaction();
        }
        $factura = getFactura($id);
        $factura = DAOFactory::getFacturaDAO()->prepare($data, $id);
        DAOFactory::getFacturaDAO()->update($factura);
        if ($trasactional) {
            $transaction->commit();
        }
        return true;
    } catch (Exception $e) {
        var_dump($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #15
0
ファイル: promocion.php プロジェクト: randyibarrola/active
function updatePromocionPalabrasClave($id, $data = array(), $data_hoteles = array())
{
    try {
        $transaction = new Transaction();
        $promocion = DAOFactory::getPromocionPalabrasClavesDAO()->prepare($data, $id);
        DAOFactory::getPromocionPalabrasClavesDAO()->update($promocion);
        DAOFactory::getPromocionPalabrasClavesHotelDAO()->deleteByPromocionId($id);
        if ($data_hoteles && is_array($data_hoteles) && count($data_hoteles)) {
            foreach ($data_hoteles as $hid) {
                $hotel_promo = DAOFactory::getPromocionPalabrasClavesHotelDAO()->prepare(array('promocionId' => $id, 'hotelId' => $hid));
                DAOFactory::getPromocionPalabrasClavesHotelDAO()->insert($hotel_promo);
            }
        }
        $transaction->commit();
        return true;
    } catch (Exception $e) {
        error_log($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #16
0
ファイル: direccion.php プロジェクト: randyibarrola/active
function updateDireccionByHotelId($idHotel, $data = array())
{
    try {
        $transaction = new Transaction();
        $hotel = getHotelById($idHotel);
        if ($hotel->direccion) {
            updateDireccion($hotel->direccion->id, $data);
        } else {
            $dir = DAOFactory::getDireccionDAO()->prepare($data);
            $dir_id = DAOFactory::getDireccionDAO()->insert($dir);
            $hd = DAOFactory::getHotelDireccionDAO()->prepare(array('hotelId' => $hotel->id, 'direccionId' => $dir_id));
            DAOFactory::getHotelDireccionDAO()->insert($hd);
        }
        $transaction->commit();
        return $idDireccion;
    } catch (Exception $e) {
        print_r($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #17
0
ファイル: cart.php プロジェクト: randyibarrola/active
function updateCart($idCart, $data = array())
{
    try {
        $transaction = new Transaction();
        if (isset($data['apartamento'])) {
            $data['apartamento'] = json_encode($data['apartamento']);
        }
        if (isset($data['excursiones'])) {
            $data['excursiones'] = json_encode($data['excursiones']);
        }
        //print_r($data);
        $cart = DAOFactory::getShoppingCartDAO()->prepare($data, $idCart);
        DAOFactory::getShoppingCartDAO()->update($cart);
        $transaction->commit();
        return $idCart;
    } catch (Exception $e) {
        print_r($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #18
0
ファイル: ListingFacade.php プロジェクト: blitzik/vycetky
 /**
  * @param Listing $baseListing
  * @param Listing $listingToMerge
  * @param array $selectedCollisionItems
  * @param \App\Model\Entities\User|int|null $user
  * @return Listing
  * @throws NoCollisionListingItemSelectedException
  * @throws \DibiException
  */
 public function mergeListings(Listing $baseListing, Listing $listingToMerge, array $selectedCollisionItems = [], $user = null)
 {
     $this->checkListingValidity($baseListing);
     $this->checkListingValidity($listingToMerge);
     if (!$this->haveListingsSamePeriod($baseListing, $listingToMerge)) {
         throw new InvalidArgumentException('Given Listings must have same Period(Year and Month).');
     }
     $userID = $this->getIdOfSignedInUserOnNull($user);
     $items = $this->itemService->getMergedListOfItems($baseListing, $listingToMerge, $selectedCollisionItems);
     try {
         $this->transaction->begin();
         $newListing = new Listing($baseListing->year, $baseListing->month, $userID);
         $this->saveListing($newListing);
         $this->itemService->setListingForGivenItems($items, $newListing);
         $this->listingItemRepository->saveListingItems($items);
         $this->transaction->commit();
         return $newListing;
     } catch (\DibiException $e) {
         $this->transaction->rollback();
         Debugger::log($e, Debugger::ERROR);
         throw $e;
     }
 }
コード例 #19
0
ファイル: reserva.php プロジェクト: randyibarrola/active
function validarReservas($reservas, $importes)
{
    try {
        $transaction = new Transaction();
        foreach ($importes as $rid => $imp) {
            $status = in_array($rid, $reservas) ? 'Stayed' : 'No show';
            $reserva = DAOFactory::getReservaDAO()->prepare(array('estado' => $status), $rid);
            DAOFactory::getReservaDAO()->update($reserva);
            //estado actualizado
            $moneda = getMoneda($reserva->monedaId);
            $productos = DAOFactory::getReservaProductoDAO()->queryByReservaId($rid);
            foreach ($productos as $p) {
                if ($p->tipo == 'apartamento') {
                    $precio = $imp;
                    if ($moneda->codigo != 'EUR') {
                        $precio = convertFromMonedaToMoneda($imp, 'EUR', $moneda->codigo);
                    }
                    $producto = DAOFactory::getReservaProductoDAO()->prepare(array('precioUnitario' => $precio), $p->id);
                    DAOFactory::getReservaProductoDAO()->update($producto);
                    break;
                }
            }
        }
        $transaction->commit();
        return true;
    } catch (Exception $e) {
        print_r($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #20
0
ファイル: leBannerInferior.php プロジェクト: njr1466/akipom
if ($action == "edit") {
    try {
        $transaction = new Transaction();
        $Bannerinferior = new Bannerinferior();
        $Bannerinferior->id = $_POST['id'];
        $Bannerinferior->datadecriacao = $datainicial;
        $Bannerinferior->datainicial = $datainicial;
        $Bannerinferior->datafinal = $datafinal;
        $Bannerinferior->link = $link;
        if (trim($foto1) == "") {
            $Bannerinferior->imagem = $_POST['foto1only'];
        } else {
            $Bannerinferior->imagem = $foto1;
        }
        DAOFactory::getBannerinferiorDAO()->update($Bannerinferior);
        $transaction->commit();
        echo "<meta http-equiv='refresh' content=3;url='bannerinferior.php'>";
    } catch (Exception $exc) {
        //header('location: login.php?msg=error');
        echo $exc;
    }
}
?>


<!DOCTYPE html>
<html>

    <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <meta charset="utf-8">
コード例 #21
0
ファイル: adword.php プロジェクト: randyibarrola/active
function updateAdwordHotel($idAdword, $idHotel)
{
    try {
        $transaction = new Transaction();
        $adwords = DAOFactory::getAdwordDAO()->queryByHotelId($idHotel);
        if ($adwords) {
            foreach ($adwords as $adword) {
                $adword->hotelId = NULL;
                DAOFactory::getAdwordDAO()->update($adword);
            }
        }
        if (strlen(trim($idAdword))) {
            $adword = DAOFactory::getAdwordDAO()->load($idAdword);
            $adword->hotelId = $idHotel;
            DAOFactory::getAdwordDAO()->update($adword);
        }
        $transaction->commit();
        return true;
    } catch (Exception $e) {
        var_dump($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #22
0
ファイル: campania.php プロジェクト: randyibarrola/active
function updateDominioCampania($idCampania, $dominio)
{
    try {
        $transaction = new Transaction();
        $data = array('subdominio' => $dominio);
        $campania = DAOFactory::getCampaniaDAO()->prepare($data, $idCampania);
        DAOFactory::getCampaniaDAO()->update($campania);
        $transaction->commit();
        return true;
    } catch (Exception $e) {
        var_dump($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #23
0
ファイル: evento.php プロジェクト: randyibarrola/active
function deleteTicketsByEvento($eventoId, $transactional = true)
{
    try {
        if ($transactional) {
            $transaction = new Transaction();
        }
        $tickets = DAOFactory::getTicketDAO()->queryByEventoId($eventoId);
        if ($tickets && is_array($tickets)) {
            foreach ($tickets as $ticket) {
                DAOFactory::getTicketFechaDAO()->deleteByTicketId($ticket->id);
            }
        }
        DAOFactory::getTicketDAO()->deleteByEventoId($eventoId);
        if ($transactional) {
            $transaction->commit();
        }
    } catch (Exception $e) {
        var_dump($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #24
0
 /**
  * Applies specified update to system
  *
  * @param int $pn_version Version number of update to apply
  * @param array $pa_options Array of options. Supported options are:
  *		cleanCache = Remove all application caches after database update if true. Default is false.
  * @return bool
  */
 static function performDatabaseUpdate($pn_version, $pa_options = null)
 {
     if (($pn_version = (int) $pn_version) <= 0) {
         return null;
     }
     $va_messages = array();
     $t = new Transaction();
     $o_db = $t->getDb();
     if (!file_exists(__CA_BASE_DIR__ . "/support/sql/migrations/{$pn_version}.sql")) {
         return null;
     }
     $o_handle = fopen(__CA_BASE_DIR__ . "/support/sql/migrations/{$pn_version}.sql", "r");
     $vn_query_total_nb = 0;
     $vs_query = '';
     while (!feof($o_handle)) {
         $vs_line = fgets($o_handle, 8128);
         // $vs_query gets a concat of lines while a ; is not met
         $vs_query .= $vs_line;
         // Reading 1 character before the EOL
         $vs_before_eol = substr(rtrim($vs_line), -1);
         if ($vs_before_eol == ';') {
             //If the line ends with a ; then we will take all what's before and execute it
             //Counts the number of requests contained in the SQL file
             $vn_query_total_nb++;
             //Launching the query
             $o_db->query($vs_query);
             if ($o_db->numErrors() > 0) {
                 // temp array to catch the errors
                 $va_error_array_for_printing = $o_db->getErrors();
                 $va_messages['error_' . $pn_version] = _t("Error applying database migration %1: %2; error was at query %3; query was %4", $pn_version, join('; ', $va_error_array_for_printing), $vn_query_total_nb, $vs_query);
                 $o_db->clearErrors();
                 $t->rollback();
                 return $va_messages;
             }
             // Reset variable
             $vs_query = '';
         }
         $t->commit();
     }
     if (isset($pa_options['cleanCache']) && $pa_options['cleanCache']) {
         // Clean cache
         caRemoveDirectory(__CA_APP_DIR__ . '/tmp', false);
     }
     return $va_messages;
 }
コード例 #25
0
 public function delete()
 {
     $tx = new Transaction();
     try {
         $this->title->delete();
         $this->text->delete();
         $this->excerpt->delete();
         foreach ($this->get_comments() as $comment) {
             $comment->delete();
         }
         qdb("DELETE FROM `PREFIX_article_tag_relations` WHERE `article` = ?", $this->id);
         qdb("DELETE FROM `PREFIX_article_extradata` WHERE `article` = ?", $this->id);
         qdb("DELETE FROM `PREFIX_articles` WHERE `id` = ?", $this->id);
         $tx->commit();
     } catch (Exception $e) {
         $tx->rollback();
         throw $e;
     }
 }
 /**
  * Change type of record, removing any metadata that is invalid for the new type
  *
  * @param mixed $pm_type The type_id or code to change the current type to
  * @return bool True if change succeeded, false if error
  */
 public function changeType($pm_type)
 {
     if (!$this->getPrimaryKey()) {
         return false;
     }
     // row must be loaded
     if (!method_exists($this, 'getTypeID')) {
         return false;
     }
     // model must be type-able
     unset($_REQUEST['form_timestamp']);
     if (!($vb_already_in_transaction = $this->inTransaction())) {
         $this->setTransaction($o_t = new Transaction($this->getDb()));
     }
     $vn_old_type_id = $this->getTypeID();
     $this->setMode(ACCESS_WRITE);
     $this->set($this->getTypeFieldName(), $pm_type, array('allowSettingOfTypeID' => true));
     // remove attributes that are not valid for new type
     $va_old_elements = $this->getApplicableElementCodes($vn_old_type_id);
     $va_new_elements = $this->getApplicableElementCodes($this->getTypeID());
     foreach ($va_old_elements as $vn_old_element_id => $vs_old_element_code) {
         if (!isset($va_new_elements[$vn_old_element_id])) {
             $this->removeAttributes($vn_old_element_id, array('force' => true));
         }
     }
     if ($this->update()) {
         if (!$vb_already_in_transaction) {
             $o_t->commit();
         }
         return true;
     }
     if (!$vb_already_in_transaction) {
         $o_t->rollback();
     }
     return false;
 }
コード例 #27
0
ファイル: afiliado.php プロジェクト: randyibarrola/active
function deleteAfiliado($idAfiliado)
{
    try {
        $transaction = new Transaction();
        DAOFactory::getAfiliadoHotelDAO()->deleteByAfiliadoId($idAfiliado);
        DAOFactory::getAfiliadoEventoDAO()->deleteByAfiliadoId($idAfiliado);
        $afiliado = DAOFactory::getAfiliadoDAO()->load($idAfiliado);
        $cuenta = array_pop(DAOFactory::getUsuarioCuentaDAO()->queryByUsuarioId($afiliado->usuarioId));
        if ($cuenta) {
            DAOFactory::getUsuarioCuentaDAO()->deleteByUsuarioId($afiliado->usuarioId);
            DAOFactory::getDireccionDAO()->delete($cuenta->direccionId);
        }
        DAOFactory::getAfiliadoDAO()->delete($idAfiliado);
        $result = DAOFactory::getUsuarioDAO()->delete($afiliado->usuarioId);
        $transaction->commit();
        return $result;
    } catch (Exception $e) {
        print_r($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #28
0
ファイル: hotel.php プロジェクト: randyibarrola/active
function completarCampania($idUsuario, $data_hotel, $data_empresa, $data_direccion, $idiomas, $monedas, $promociones)
{
    try {
        $transaction = new Transaction();
        $empresas = getEmpresasByUsuario($idUsuario);
        $empresa = $empresas[0];
        $emp = updateEmpresa($empresa->id, $data_empresa, $data_direccion, false);
        if (!$emp) {
            throw new Exception('No se guardaron los datos de la empresa');
        }
        $hoteles = getHotelesByUsuario($idUsuario);
        $idHotel = $hoteles[0]->id;
        $hotel = DAOFactory::getHotelDAO()->prepare($data_hotel, $idHotel);
        DAOFactory::getHotelDAO()->update($hotel);
        getClaveByHotel($idHotel);
        DAOFactory::getHotelIdiomaDAO()->deleteByHotelId($idHotel);
        if (count($idiomas)) {
            foreach ($idiomas as $idioma) {
                $id = DAOFactory::getHotelIdiomaDAO()->prepare(array('hotelId' => $idHotel, 'idiomaId' => $idioma));
                DAOFactory::getHotelIdiomaDAO()->insert($id);
            }
        }
        DAOFactory::getHotelMonedaDAO()->deleteByHotelId($idHotel);
        if (count($monedas)) {
            foreach ($monedas as $moneda) {
                $mon = DAOFactory::getHotelMonedaDAO()->prepare(array('hotelId' => $idHotel, 'monedaId' => $moneda));
                DAOFactory::getHotelMonedaDAO()->insert($mon);
            }
        }
        DAOFactory::getPromocionDAO()->deleteByHotelId($idHotel);
        foreach ($promociones as $data_promocion) {
            $data_promocion['hotelId'] = $idHotel;
            $promocion = DAOFactory::getPromocionDAO()->prepare($data_promocion);
            DAOFactory::getPromocionDAO()->insert($promocion);
        }
        $usuario = DAOFactory::getUsuarioDAO()->prepare(array('status' => 'activo'), $idUsuario);
        DAOFactory::getUsuarioDAO()->update($usuario);
        $transaction->commit();
        return true;
    } catch (Exception $e) {
        var_dump($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #29
0
ファイル: empresa.php プロジェクト: randyibarrola/active
function deleteEmpresa($idEmpresa, $transactional = true)
{
    try {
        if ($transactional) {
            $transaction = new Transaction();
        }
        $empresa = DAOFactory::getEmpresaDAO()->load($idEmpresa);
        $hoteles = DAOFactory::getHotelDAO()->queryByEmpresaId($idEmpresa);
        if ($hoteles) {
            foreach ($hoteles as $hotel) {
                $el = deleteHotel($hotel->id, false);
                if (!$el) {
                    throw new Exception('No se pudo eliminar el hotel');
                }
            }
        }
        $campanias = DAOFactory::getCampaniaDAO()->queryByEmpresaId($idEmpresa);
        if ($campanias && count($campanias)) {
            foreach ($campanias as $c) {
                $d = eliminarCampania($c->id, false);
                if (!$d) {
                    throw new Exception('No se pudo borrar la campaña ' . $c->id);
                }
            }
        }
        $campanias = DAOFactory::getCampaniaDAO()->queryByEmpresaDistribuidoraId($idEmpresa);
        if ($campanias && count($campanias)) {
            foreach ($campanias as $c) {
                $d = eliminarCampania($c->id, false);
                if (!$d) {
                    throw new Exception('No se pudo borrar la campaña ' . $c->id);
                }
            }
        }
        DAOFactory::getUsuarioEmpresaDAO()->deleteByEmpresaId($idEmpresa);
        DAOFactory::getEmpresaDAO()->delete($idEmpresa);
        DAOFactory::getDireccionDAO()->delete($empresa->direccionId);
        if ($transactional) {
            $transaction->commit();
        }
        return true;
    } catch (Exception $e) {
        print_r($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}
コード例 #30
0
function actualizarCambioMoneda()
{
    try {
        set_time_limit(0);
        $moneda = getMonedaByCodigo('USD');
        $hoy = strtotime(date('Y-m-d'));
        $lastUpdate = strtotime(date('Y-m-d', $moneda->ultimaModificacion ? strtotime($moneda->ultimaModificacion) : 0));
        if ($hoy > $lastUpdate) {
            $monedas = getAllMonedas();
            $transaction = new Transaction();
            $change_url = 'https://www.google.com/finance/converter';
            $cant = 1;
            $from = 'EUR';
            foreach ($monedas as $moneda) {
                $content = file_get_contents($change_url . '?a=' . $cant . '&from=' . $from . '&to=' . $moneda->codigo);
                $dom = new DOMDocument();
                @$dom->loadHTML($content);
                $x = new DOMXPath($dom);
                foreach ($x->query('//span[@class="bld"]') as $node) {
                    $rate = floatval(trim(str_replace($moneda->codigo, '', $node->nodeValue)));
                    $m = DAOFactory::getMonedaDAO()->prepare(array('tasaCambio' => $rate, 'ultimaModificacion' => date('Y-m-d')), $moneda->id);
                    DAOFactory::getMonedaDAO()->update($m);
                }
            }
            $transaction->commit();
        }
        return true;
    } catch (Exception $e) {
        print_r($e);
        if ($transaction) {
            $transaction->rollback();
        }
        return false;
    }
}