Exemple #1
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     $errorUrl1 = '?popup=1&m=Action_Lieu_Guichet';
     $errorUrl2 = '?popup=1&m=Action_Lieu_Guichet2';
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         return fctErrorMSG('Vous n\'êtes pas en état d\'effectuer cette action.', $errorUrl1);
     }
     //Vérifier si une carte à été sélectionnée
     if (!isset($_POST['carteid'])) {
         return fctErrorMSG('Aucune carte sélectionnée.', $errorUrl1);
     }
     //Valider si le NIP a été saisi
     if (!isset($_POST['nip'])) {
         return fctErrorMSG('Aucun NIP spécifié.', $errorUrl2, array('carteid' => $_POST['carteid']));
     }
     //Créer la carte + compte
     $query = 'SELECT *' . ' FROM `' . DB_PREFIX . 'banque_cartes`' . ' LEFT JOIN `' . DB_PREFIX . 'banque_comptes` ON (`compte_banque` = `carte_banque` AND `compte_compte` = `carte_compte`)' . ' WHERE `carte_id` = :carteId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':carteId', $_POST['carteid'], PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la carte existe
     if ($arr === false) {
         return fctErrorMSG('Cette carte à été supprimée ou désactivée.', $errorUrl1);
     }
     //Créer le compte bancaire
     $compte = new Member_BanqueCompte($arr);
     //Créer la carte bancaire
     $carte = $compte->getCarte($_POST['carteid'], $arr);
     //Valider si la carte est active ou non
     if (!$carte->isValid()) {
         return fctErrorMSG('Cette carte est actuellement désactivée.', $errorUrl1);
     }
     //Passer les informations de connexion au template
     $tpl->set('CARD_ID', $_POST['carteid']);
     $tpl->set('NIP', $_POST['nip']);
     //Valider le NIP et afficher la bonne page selon s'il est valide ou non
     if ($carte->getNip() == $_POST['nip']) {
         //NIP valide, afficher la page
         $tpl->set('SOLDE', fctCreditFormat($compte->getCash(), true));
         return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Guichet3.htm', __FILE__, __LINE__);
     } else {
         //NIP invalide, afficher à nouveau le clavier
         $tpl->set('PAGE_WRONGACCESS', true);
         return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Guichet2.htm', __FILE__, __LINE__);
     }
 }
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     //Valider si le # du compte à été recu
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     //Passer le # de compte au template
     $tpl->set('COMPTE', $_POST['compte']);
     try {
         $compte = Member_BanqueCompte::getCompteFromNoCompte($_POST['compte']);
     } catch (Exception $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //Vérifier si le compte est autorisé à avoir des transactions automatiques
     if (!$compte->authAutoTransactions()) {
         return fctErrorMSG('Ce compte n\'est pas autorisé à faire des transactions automatiques.');
     }
     //Charger les transactions du compte
     $transactions = $compte->getTransactionsAuto();
     if (!empty($transactions)) {
         $tpl->set('TRANSACTIONS', $transactions);
     }
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/BanqueTransactionAuto.htm', __FILE__, __LINE__);
 }
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     //Valider si le # du compte à été recu
     if (!isset($_GET['id'])) {
         return fctErrorMSG('Id du compte manquant.');
     }
     //Valider si le # de la banque a été reçu
     if (!isset($_GET['bid'])) {
         return fctErrorMSG('Id de la banque manquant.');
     }
     //Passer l'id de la banque au template (pour le retour)
     $tpl->set('BANKID', $_GET['bid']);
     try {
         $compte = Member_BanqueCompte::getCompteFromId($_GET['id']);
     } catch (Exception $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Passer le compte au template
     $tpl->set('COMPTE', $compte);
     //Charger les transactions du compte
     $transactions = $compte->getTransactionsAuto();
     if (!empty($transactions)) {
         $tpl->set('TRANSACTIONS', $transactions);
     }
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Lieu/BanqueTransactionAuto.htm', __FILE__, __LINE__);
 }
 public static function generatePage(&$tpl, &$session, &$account, &$mj)
 {
     //Valider si le # de compte a été recu
     if (!isset($_POST['compteId']) || !is_numeric($_POST['compteId'])) {
         return fctErrorMSG('Id du compte invalide.');
     }
     //Valider si le # de la banque a été recu
     if (!isset($_POST['banqueId']) || !is_numeric($_POST['banqueId'])) {
         return fctErrorMSG('Id de la banque invalide.');
     }
     $errorUrl = '?mj=Lieu_BanqueTransactionAuto&id=' . $_POST['compteId'] . '&bid=' . $_POST['banqueId'];
     //Valider si une transaction est passée
     if (!isset($_POST['tid'])) {
         return fctErrorMSG('Vous devez sélectionner une transaction.', $errorUrl);
     }
     //Instancier le compte
     try {
         $compte = Member_BanqueCompte::getCompteFromId($_POST['compteId']);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //supprimer la transaction
     $compte->delTransactionAuto($_POST['tid']);
     die("<script type=\"text/javascript\">location.href='?mj=Lieu_BanqueTransactionAuto&id=" . $_POST['compteId'] . "&bid=" . $_POST['banqueId'] . "';</script>");
 }
Exemple #5
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     //Valider si un # de compte à été recu
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     //Valider si un numéro de carte à été recu
     if (!isset($_POST['cid'])) {
         return fctErrorMSG('Cete carte est invalide (aucune carte).');
     }
     //Passer le # du compte au template
     $tpl->set('COMPTE', $_POST['compte']);
     //Instancier le compte
     try {
         $compte = Member_BanqueCompte::getCompteFromNoCompte($_POST['compte']);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //supprimer la carte
     $compte->delAccesCard($_POST['cid']);
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_carte_redirect.htm', __FILE__, __LINE__);
 }
 public static function generatePage(&$tpl, &$session, &$account, &$mj)
 {
     //Valider si le # du compte à été recu
     if (!isset($_POST['compteId']) || !is_numeric($_POST['compteId'])) {
         return fctErrorMSG('Ce compte est invalide.');
     }
     //Valider si le # de banque à été recu
     if (!isset($_POST['banqueId']) || !is_numeric($_POST['banqueId'])) {
         return fctErrorMSG('banque invalide.');
     }
     //Valider si le # de transaction à été recu
     if (!isset($_POST['tid']) || !is_numeric($_POST['tid'])) {
         return fctErrorMSG('Transaction invalide.');
     }
     //Instancier le compte
     try {
         $compte = Member_BanqueCompte::getCompteFromId($_POST['compteId']);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Rechercher la transaction
     $transactions = $compte->getTransactionsAuto();
     foreach ($transactions as $transaction) {
         if ($transaction->getId() == $_POST['tid']) {
             $transactionFound = $transaction;
         }
     }
     //Vérifier si la transaction existe
     if (!isset($transactionFound)) {
         return fctErrorMSG('Cette transaction n\'existe pas. (' . $_POST['tid'] . ')');
     }
     //Vérifier les données
     if (!is_numeric($_POST['value'])) {
         return fctErrorMSG('Le montant doit être numérique.');
     }
     if (!isset($_POST['date_day']) || empty($_POST['date_day']) || !isset($_POST['date_month']) || empty($_POST['date_month']) || !isset($_POST['date_year']) || empty($_POST['date_year'])) {
         return fctErrorMSG('La date est incomplète.');
     }
     if (!is_numeric($_POST['date_day']) || !is_numeric($_POST['date_month']) || !is_numeric($_POST['date_year'])) {
         return fctErrorMSG('La date est erronée.');
     }
     if (!checkdate($_POST['date_month'], $_POST['date_day'], $_POST['date_year'] - GAMETIME_DECAL)) {
         return fctErrorMSG('La date est erronée.');
     }
     //Mettre à jour les informations
     try {
         $newCompteTo = Member_BanqueCompte::getCompteFromNoCompte($_POST['compteTo']);
         $transactionFound->changeCompteIdTo($newCompteTo->getId());
         $transactionFound->changeDescription($_POST['description']);
         $transactionFound->changeValue($_POST['value']);
         $date = mktime(0, 0, 0, $_POST['date_month'], $_POST['date_day'], $_POST['date_year'] - GAMETIME_DECAL);
         $transactionFound->changeDate($date);
         $transactionFound->setData();
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //rediriger la page
     die("<script type=\"text/javascript\">location.href='?mj=Lieu_BanqueTransactionAuto&id=" . $_POST['compteId'] . "&bid=" . $_POST['banqueId'] . "';</script>");
 }
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $coutTransaction = 0;
     //Vérifier les paramêtres requis
     if (!isset($_POST['compteNoTo']) || empty($_POST['compteNoTo'])) {
         return fctErrorMSG('Vous devez préciser le compte récepteur.');
     }
     if (!isset($_POST['description']) || empty($_POST['description'])) {
         return fctErrorMSG('Vous devez préciser une description pour la transaction.');
     }
     if (!isset($_POST['value']) || empty($_POST['value'])) {
         return fctErrorMSG('Vous devez entrer le montant de la transaction.');
     }
     if (!is_numeric($_POST['value'])) {
         return fctErrorMSG('Le montant doit être numérique.');
     }
     if (!isset($_POST['date_day']) || empty($_POST['date_day']) || !isset($_POST['date_month']) || empty($_POST['date_month']) || !isset($_POST['date_year']) || empty($_POST['date_year'])) {
         return fctErrorMSG('La date est incomplète.');
     }
     if (!is_numeric($_POST['date_day']) || !is_numeric($_POST['date_month']) || !is_numeric($_POST['date_year'])) {
         return fctErrorMSG('La date est erronée.');
     }
     if (!checkdate($_POST['date_month'], $_POST['date_day'], $_POST['date_year'] - GAMETIME_DECAL)) {
         return fctErrorMSG('La date est erronée.');
     }
     //Passer le # du compte au template
     $tpl->set('COMPTE', $_POST['compte']);
     //Instancier les comptes
     try {
         $compteEmetteur = Member_BanqueCompte::getCompteFromNoCompte($_POST['compte']);
         $compteRecepteur = Member_BanqueCompte::getCompteFromNoCompte($_POST['compteNoTo']);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Vérifier si le compte appartiend bien au perso
     if ($compteEmetteur->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //Valider si le compte possède assez d'argent pour créer la transaction
     if ($compteEmetteur->getCash() < $coutTransaction && $compteEmetteur->getCash() != -1) {
         return fctErrorMSG('Vous n\'avez pas assez de fond dans votre compte pour créer une transaction.');
     }
     $date = mktime(0, 0, 0, $_POST['date_month'], $_POST['date_day'], $_POST['date_year'] - GAMETIME_DECAL);
     //Créer la transaction
     try {
         Member_BanqueTransactionAuto::createNewTransactionAuto($compteEmetteur->getId(), $compteRecepteur->getId(), $_POST['value'], $_POST['description'], $date);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Retirer le cout de la transaction du compte
     $compteEmetteur->changeCash('-', $coutTransaction);
     $compteEmetteur->setCash();
     //Ajouter la transaction dans l'historique du compte et le HE
     $compteEmetteur->add_bq_hist('', 'CGCH', $coutTransaction, 0);
     Member_He::add(NULL, $perso->getId(), 'banque', 'Vous créez une transaction automatique pour le compte ' . $compteEmetteur->getNoBanque() . '-' . $compteEmetteur->getNoCompte() . '.');
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/BanqueTransactionAutoRedirect.htm', __FILE__, __LINE__);
 }
Exemple #8
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     //Valider si le # du compte à été recu
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     //Valider si le # de carte à été recu
     if (!isset($_POST['cid'])) {
         return fctErrorMSG('Cette carte est invalide (aucune carte).');
     }
     //Passer le # de compte au template
     $tpl->set('COMPTE', $_POST['compte']);
     //Instancier le compte
     try {
         $compte = Member_BanqueCompte::getCompteFromNoCompte($_POST['compte']);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //Valider si le NIP est possible
     if (!is_numeric($_POST['nip'])) {
         return fctErrorMSG('Vous devez entrez un NIP composé uniquement de chiffres de 0 à 9.');
     }
     //Valider si le nom a été entré
     if (empty($_POST['nom'])) {
         return fctErrorMSG('Vous devez entrez un nom pour la carte.');
     }
     //Rechercher la carte
     $cartes = $compte->getCartes();
     foreach ($cartes as $carte) {
         if ($carte->getNo() == $_POST['cid']) {
             $carteFound = $carte;
         }
     }
     //Vérifier si la carte existe
     if (!isset($carteFound)) {
         return fctErrorMSG('Cette carte n\'existe pas. (' . $_POST['cid'] . ')');
     }
     //Mettre à jour les informations
     $carteFound->changeNom($_POST['nom']);
     $carteFound->changeNip($_POST['nip']);
     $carteFound->changeValid($_POST['valid'] == 1 ? true : false);
     $carteFound->saveData();
     //rediriger la page
     //TODO: utiliser le module de redirection
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_carte_redirect.htm', __FILE__, __LINE__);
 }
Exemple #9
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $cout_carte = 10;
     //Vérifier les paramêtres requis
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     //Passer le # du compte au template
     $tpl->set('COMPTE', $_POST['compte']);
     //Instancier le compte
     try {
         $compte = Member_BanqueCompte::getCompteFromNoCompte($_POST['compte']);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //Valider si le nip a été entré
     if (!is_numeric($_POST['nip'])) {
         return fctErrorMSG('Vous devez entrez un NIP composé uniquement de chiffres de 0 à 9.');
     }
     //Valider si le nom a été entré
     if (empty($_POST['nom'])) {
         return fctErrorMSG('Vous devez entrez un nom pour la carte.');
     }
     //Valider si le compte possède assez d'argent pour acheter une carte
     if ($compte->getCash() < $cout_carte && $compte->getCash() != -1) {
         return fctErrorMSG('Vous n\'avez pas assez de fond dans votre compte pour créer une carte.');
     }
     //Retirer le cout de la carte du compte
     $compte->changeCash('-', $cout_carte);
     $compte->setCash();
     //Créer l'access
     $carteId = $compte->createAccesCard($_POST['nom'], $_POST['nip'], $_POST['valid']);
     //Créer la carte
     $compte->createCarteGuichet($_POST['nom'], $carteId, $perso->getId());
     //Ajouter la transaction dans l'historique du compte et le HE
     $compte->add_bq_hist('', 'CGCH', $cout_carte, 0);
     Member_He::add(NULL, $perso->getId(), 'banque', 'Vous obtenez une carte pour le compte ' . $compte->getNoBanque() . '-' . $compte->getNoCompte() . '.');
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_carte_redirect.htm', __FILE__, __LINE__);
 }
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     //Valider si le # de compte a été recu
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     //Passer le # de compte au template
     $tpl->set('COMPTE', $_POST['compte']);
     //Instancier le compte
     try {
         $compte = Member_BanqueCompte::getCompteFromNoCompte($_POST['compte']);
     } catch (Exception $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/BanqueTransactionAutoAdd.htm', __FILE__, __LINE__);
 }
 public static function generatePage(&$tpl, &$session, &$account, &$mj)
 {
     //Vérifier le # du compte a été recu
     if (!isset($_POST['compteId'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     if (!isset($_POST['banqueId'])) {
         return fctErrorMSG('Identifiant banque manquant.');
     }
     //Valider si une transaction à été sélectionnée
     if (!isset($_POST['tid'])) {
         return fctErrorMSG('Aucune transaction n\'a été sélectionnée.');
     }
     //Instancier le compte
     try {
         $compte = Member_BanqueCompte::getCompteFromId($_POST['compteId']);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Passer le compte au template
     $tpl->set('COMPTE', $compte);
     //Passer l'id de la banque au template
     $tpl->set('BANQUE_ID', $_POST['banqueId']);
     //Rechercher la transaction
     $transactions = $compte->getTransactionsAuto();
     foreach ($transactions as $transaction) {
         if ($transaction->getId() == $_POST['tid']) {
             $transactionFound = $transaction;
         }
     }
     //Vérifier si la transaction existe
     if (!isset($transactionFound)) {
         return fctErrorMSG('Cette transaction n\'existe pas.');
     }
     //Passer les informations sur la carte au template
     $tpl->set('TRANSACTION', $transactionFound);
     //Afficher la page
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Lieu/BanqueTransactionAutoMod.htm', __FILE__, __LINE__);
 }
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     //Vérifier le # du compte a été recu
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     //Valider si une carte à été sélectionnée
     if (!isset($_POST['tid'])) {
         return fctErrorMSG('Aucune transaction n\'a été sélectionnée.');
     }
     //Passer le # du compte au template
     $tpl->set('COMPTE', $_POST['compte']);
     //Instancier le compte
     try {
         $compte = Member_BanqueCompte::getCompteFromNoCompte($_POST['compte']);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //Rechercher la transaction
     $transactions = $compte->getTransactionsAuto();
     foreach ($transactions as $transaction) {
         if ($transaction->getId() == $_POST['tid']) {
             $transactionFound = $transaction;
         }
     }
     //Vérifier si la carte existe
     if (!isset($transactionFound)) {
         return fctErrorMSG('Cette transaction n\'existe pas.');
     }
     //Passer les informations sur la carte au template
     $tpl->set('TRANSACTION', $transactionFound);
     //Afficher la page
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/BanqueTransactionAutoMod.htm', __FILE__, __LINE__);
 }
 public static function save()
 {
     //Instancier le compte
     $compteFrom = Member_BanqueCompte::getCompteFromId($_POST['compteId']);
     $compteTo = Member_BanqueCompte::getCompteFromNoCompte($_POST['compteNoTo']);
     //Vérifier les valeurs
     if (!is_numeric($_POST['value'])) {
         throw new GameException('Le montant doit être numérique.');
     }
     if (!isset($_POST['date_day']) || empty($_POST['date_day']) || !isset($_POST['date_month']) || empty($_POST['date_month']) || !isset($_POST['date_year']) || empty($_POST['date_year'])) {
         throw new GameException('La date est incomplète.');
     }
     if (!is_numeric($_POST['date_day']) || !is_numeric($_POST['date_month']) || !is_numeric($_POST['date_year'])) {
         throw new GameException('La date est erronée.');
     }
     if (!checkdate($_POST['date_month'], $_POST['date_day'], $_POST['date_year'] - GAMETIME_DECAL)) {
         throw new GameException('La date est erronée.');
     }
     $date = mktime(0, 0, 0, $_POST['date_month'], $_POST['date_day'], $_POST['date_year'] - GAMETIME_DECAL);
     //Créer la nouvelle transaction
     Member_BanqueTransactionAuto::createNewTransactionAuto($compteFrom->getId(), $compteTo->getId(), $_POST['value'], $_POST['description'], $date);
     die("<script type=\"text/javascript\">location.href='?mj=Lieu_BanqueTransactionAuto&id=" . $_POST['compteId'] . "&bid=" . $_POST['banqueId'] . "';</script>");
 }
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     //Valider si le # du compte à été recu
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     //Valider si le # de carte à été recu
     if (!isset($_POST['tid'])) {
         return fctErrorMSG('Cette carte est invalide (aucune carte).');
     }
     //Passer le # de compte au template
     $tpl->set('COMPTE', $_POST['compte']);
     //Instancier le compte
     try {
         $compte = Member_BanqueCompte::getCompteFromNoCompte($_POST['compte']);
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //Rechercher la transaction
     $transactions = $compte->getTransactionsAuto();
     foreach ($transactions as $transaction) {
         if ($transaction->getId() == $_POST['tid']) {
             $transactionFound = $transaction;
         }
     }
     //Vérifier si la transaction existe
     if (!isset($transactionFound)) {
         return fctErrorMSG('Cette transaction n\'existe pas. (' . $_POST['tid'] . ')');
     }
     //Vérifier les données
     if (!is_numeric($_POST['value'])) {
         return fctErrorMSG('Le montant doit être numérique.');
     }
     if (!isset($_POST['date_day']) || empty($_POST['date_day']) || !isset($_POST['date_month']) || empty($_POST['date_month']) || !isset($_POST['date_year']) || empty($_POST['date_year'])) {
         return fctErrorMSG('La date est incomplète.');
     }
     if (!is_numeric($_POST['date_day']) || !is_numeric($_POST['date_month']) || !is_numeric($_POST['date_year'])) {
         return fctErrorMSG('La date est erronée.');
     }
     if (!checkdate($_POST['date_month'], $_POST['date_day'], $_POST['date_year'] - GAMETIME_DECAL)) {
         return fctErrorMSG('La date est erronée.');
     }
     //Mettre à jour les informations
     try {
         $newCompteTo = Member_BanqueCompte::getCompteFromNoCompte($_POST['compteTo']);
         $transactionFound->changeCompteIdTo($newCompteTo->getId());
         $transactionFound->changeDescription($_POST['description']);
         $transactionFound->changeValue($_POST['value']);
         $date = mktime(0, 0, 0, $_POST['date_month'], $_POST['date_day'], $_POST['date_year'] - GAMETIME_DECAL);
         $transactionFound->changeDate($date);
         $transactionFound->setData();
     } catch (GameException $e) {
         return fctErrorMSG($e->getMessage());
     }
     //rediriger la page
     //TODO: utiliser le module de redirection
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/BanqueTransactionAutoRedirect.htm', __FILE__, __LINE__);
 }
Exemple #15
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     $errorUrl = '?popup=1&amp;m=Action_Lieu_BanqueCompteAdd';
     $coutPa = 1;
     if ($perso->getPa() <= $coutPa) {
         return fctErrorMSG('Vous n\'avez pas assez de PA pour effectuer cette action.', $errorUrl);
     }
     if (empty($_POST['nom'])) {
         return fctErrorMSG('Vous devez associer un nom avec le compte.', $errorUrl);
     }
     if (empty($_POST['nip'])) {
         return fctErrorMSG('Vous devez associer un nip avec le compte.', $errorUrl);
     }
     if (!is_numeric($_POST['nip'])) {
         return fctErrorMSG('Le nip doit être numérique.', $errorUrl);
     }
     if ($_POST['nip'] < 0) {
         return fctErrorMSG('Le nip est incorrect.', $errorUrl);
     }
     //Rechercher la banque
     $query = 'SELECT *' . '  FROM ' . DB_PREFIX . 'banque' . ' WHERE banque_lieu=:nomTech;';
     $prep = $db->prepare($query);
     $prep->bindValue(':nomTech', $perso->getLieu()->getNomTech(), PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la banque existe
     if ($arr === false) {
         return fctErrorMSG('Cette banque n\'existe pas (' . $perso->getLieu()->getNomTech() . ').');
     }
     //Instancier la banque
     $banque = new Member_Banque($arr);
     //Vérifier si la personne à assez d'argent sur elle pour ouvrir un compte
     if ($perso->getCash() < $banque->getFraisOuverture()) {
         return fctErrorMSG('Vous n\'avez pas assez d\'argent pour effectuer cette action.', $errorUrl);
     }
     //Effectuer le paiement ( Cash + PA)
     $perso->changeCash('-', $banque->getFraisOuverture());
     $perso->setCash();
     $perso->changePa('-', $coutPa);
     $perso->setPa();
     //Créer le compte
     $compte_no = Member_BanqueCompte::generateAccountNo();
     $query = 'INSERT INTO `' . DB_PREFIX . 'banque_comptes`' . ' (`compte_idperso` , `compte_nom` , `compte_banque` , `compte_compte` , `compte_cash`, `compte_nip`)' . ' VALUES' . ' (:persoId, :nom, :banque, :compte, 0, :nip);';
     $prep = $db->prepare($query);
     $prep->bindValue(':persoId', $perso->getId(), PDO::PARAM_INT);
     $prep->bindValue(':banque', $banque->getNoBanque(), PDO::PARAM_STR);
     $prep->bindValue(':compte', $compte_no, PDO::PARAM_STR);
     $prep->bindValue(':nom', $_POST['nom'], PDO::PARAM_STR);
     $prep->bindValue(':nip', $_POST['nip'], PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $prep->closeCursor();
     $prep = NULL;
     $compteId = $db->lastInsertId();
     //Rechercher le compte afin d'y faire des opérations.
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_id=:compteId' . ' AND compte_idperso=:persoId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':compteId', $compteId, PDO::PARAM_INT);
     $prep->bindValue(':persoId', $perso->getId(), PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si le compte existe
     if ($arr === false) {
         return fctErrorMSG('Le compte que vous venez de créer n\'existe pas. Contacter un MJ.', $errorUrl);
     }
     //Instancier le compte
     $compte = $banque->getCompte($arr['compte_compte'], $arr);
     //Ajouter l'ouverture à l'historique
     $compte->add_bq_hist('', 'OVRT', 0, 0);
     //Rediriger la page
     $tpl->set('PAGE', 'Action_Lieu_Banque');
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/action_redirect.htm', __FILE__, __LINE__);
 }
Exemple #16
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     //Cout en PA des actions
     $coutPa = 1;
     if ($perso->getPa() <= $coutPa) {
         return fctErrorMSG('Vous n\'avez pas assez de PA pour effectuer cette action.', $errorUrl);
     }
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         return fctErrorMSG('Votre n\'êtes pas en état d\'effectuer cette action.');
     }
     //Rechercher la banque
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque' . ' WHERE banque_lieu=:nomTech' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':nomTech', $perso->getLieu()->getNomTech(), PDO::PARAM_STR);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la banque existe
     if ($arr === false) {
         return fctErrorMSG('Cette banque est actuellement innaccessible ou innexistante (' . $perso->getLieu()->getNomTech() . ').');
     }
     //Instancier la banque
     $banque = new Member_Banque($arr);
     $tpl->set('BANQUE', $banque);
     //Passer l'objet "banque" au template
     //###Changer le NIP
     if (isset($_POST['changeNIP'])) {
         if (!isset($_POST['nip'])) {
             return fctErrorMSG('Vous devez entrer un NIP.');
         }
         if (empty($_POST['nip'])) {
             return fctErrorMSG('Vous devez entrer un NIP.');
         }
         if (!is_numeric($_POST['nip'])) {
             return fctErrorMSG('Le NIP doit être numérique.');
         }
         if ($_POST['nip'] < 0) {
             return fctErrorMSG('Le NIP est incorrect.');
         }
         if (!isset($_POST['compte_id'])) {
             fctBugReport('Le compte n\'est pas spécifié.', array(), __FILE__, __LINE__);
         }
         //Récupérer le compte
         try {
             $compteToChangeNIP = Member_BanqueCompte::getCompteFromId($_POST['compte_id']);
         } catch (GameException $e) {
             return fctErrorMSG($e->getMessage());
         }
         //Modifier le nip
         $compteToChangeNIP->changeNIP($_POST['nip']);
     }
     //###Fermer un compte
     if (isset($_POST['close'])) {
         //Valider si le perso possède assez de PA
         if ($perso->getPa() < 1) {
             return fctErrorMSG('Vous n\'avez pas assez de PA pour effectuer cette action.');
         }
         //Instancier le compte afin d'y faire des opérations.
         $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_id=:compteId' . ' AND compte_idperso=:persoId' . ' LIMIT 1';
         $prep = $db->prepare($query);
         $prep->bindValue(':compteId', $_POST['compte_id'], PDO::PARAM_STR);
         $prep->bindValue(':persoId', $perso->getId(), PDO::PARAM_INT);
         $prep->execute($db, __FILE__, __LINE__);
         $arr = $prep->fetch();
         $prep->closeCursor();
         $prep = NULL;
         //Valider si le compte existe
         if ($arr === false) {
             return fctErrorMSG('Ce compte n\'existe pas (' . $_POST['compte_id'] . ').');
         }
         //Instancier le compte
         $compte = $banque->getCompte($arr['compte_compte'], $arr);
         //Valider
         if (!isset($_POST['c_check'])) {
             return fctErrorMSG('Vous devez cocher la case pour confirmer que vous voulez bien fermer ce compte.', '?popup=1&amp;m=Action_Lieu_Banque');
         }
         //Effectuer le transfert d'argent (Transférer l'argent du compte vers le perso)
         $perso->changeCash('+', $compte->getCash());
         $perso->setCash();
         //Effacer le compte
         $query = 'DELETE FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_id=:compteId' . ' AND compte_idperso=:persoId' . ' LIMIT 1';
         $prep = $db->prepare($query);
         $prep->bindValue(':compteId', $_POST['compte_id'], PDO::PARAM_STR);
         $prep->bindValue(':persoId', $perso->getId(), PDO::PARAM_INT);
         $prep->execute($db, __FILE__, __LINE__);
         $prep->closeCursor();
         $prep = NULL;
         //Retirer les PA
         $perso->changePa('-', $coutPa);
         $perso->setPa();
         //Ajouter la transaction à l'historique
         $compte->add_bq_hist('', 'FRMT', $compte->getCash(), 0, "FERMÉ");
         Member_He::add('System', $perso->getId(), 'banque', 'Vous fermez un compte en banque.');
     }
     $tpl->set('PA', $perso->getPa());
     $tpl->set('CASH', $perso->getCash());
     //Trouver tous les comptes appartenant au perso
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_banque=:banque' . ' AND compte_idperso=:persoId;';
     $prep = $db->prepare($query);
     $prep->bindValue(':banque', $banque->getNoBanque(), PDO::PARAM_STR);
     $prep->bindValue(':persoId', $perso->getId(), PDO::PARAM_INT);
     $prep->execute($db, __FILE__, __LINE__);
     $arrCompte = $prep->fetchAll();
     $prep->closeCursor();
     $prep = NULL;
     //Ouvrir un nouveau compte si on le demande ou si aucun compte n'existe
     if (count($arrCompte) == 0 || isset($_POST['newaccount'])) {
         //Afficher le template d'ouverture de compte
         $tpl->set('BANK_ACCOUNT_NAME', $perso->getNom());
         return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_compte_add.htm', __FILE__, __LINE__);
     } else {
         //Faire les opération sur le(s) compte(s) existant(s).
         foreach ($arrCompte as &$arr) {
             $BANK_ACCOUNTS[] = $banque->getCompte($arr['compte_compte'], $arr);
         }
         $tpl->set('BANK_ACCOUNTS', $BANK_ACCOUNTS);
         return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque.htm', __FILE__, __LINE__);
     }
 }
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         return fctErrorMSG('Votre n\'êtes pas en état d\'effectuer cette action.');
     }
     //Vérifier les paramêtres requis
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     if (!isset($_POST['trsid'])) {
         return fctErrorMSG('Cette transaction est invalide (aucune transaction).');
     }
     //Valider le # du compte (TODO: REGEX !!!!)
     if (strlen($_POST['compte']) != 19) {
         return fctErrorMSG('Ce compte est invalide (no invalide).');
     }
     $banque_no = substr($_POST['compte'], 0, 4);
     $compte_no = substr($_POST['compte'], 5, 14);
     $tpl->set('COMPTE', $_POST['compte']);
     //Chercher le compte afin d'y faire des opérations.
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_banque=:banque' . ' AND compte_compte=:compte' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':compte', $compte_no, PDO::PARAM_STR);
     $prep->bindValue(':banque', $banque_no, PDO::PARAM_STR);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si le compte existe
     if ($arr === false) {
         return fctErrorMSG('Ce compte n\'existe pas.');
     }
     //Instancier le compte
     $compte = new Member_BanqueCompte($arr);
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //Charger l'historique des transactions
     $fullCompte = $compte->getNoBanque() . '-' . $compte->getNoCompte();
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_historique' . ' WHERE compte=:fullCompte' . ' AND id=:id' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':fullCompte', $fullCompte, PDO::PARAM_STR);
     $prep->bindValue(':id', $_POST['trsid'], PDO::PARAM_INT);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la transaction existe
     if ($arr === false) {
         return fctErrorMSG('Cette transaction est invalide (transaction innexistante).');
     }
     //Formater les variables
     $arr['date'] = fctToGameTime($arr['date'], true);
     $arr['solde'] = fctCreditFormat($arr['solde'], true);
     //Afficher le template approprié selon le type de transaction
     switch ($arr['code']) {
         case 'RETR':
             $arr['montant'] = fctCreditFormat($arr['retrait']);
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailsdirect.htm', __FILE__, __LINE__);
             break;
         case 'DPOT':
             $arr['montant'] = fctCreditFormat($arr['depot']);
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailsdirect.htm', __FILE__, __LINE__);
             break;
         case 'RTRF':
             $arr['montant'] = fctCreditFormat($arr['depot']);
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailstransfert.htm', __FILE__, __LINE__);
             break;
         case 'STRF':
             $arr['montant'] = fctCreditFormat($arr['retrait']);
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailstransfert.htm', __FILE__, __LINE__);
             break;
         default:
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailsnodetails.htm', __FILE__, __LINE__);
             break;
     }
 }
Exemple #18
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     $errorUrl1 = '?popup=1&amp;m=Action_Lieu_Guichet';
     $errorUrl2 = '?popup=1&amp;m=Action_Lieu_Guichet2';
     $errorUrl3 = '?popup=1&amp;m=Action_Lieu_Guichet3';
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         return fctErrorMSG('Votre n\'êtes pas en état d\'effectuer cette action.', $errorUrl1);
     }
     //Vérifier si une carte à été sélectionnée
     if (!isset($_POST['carteid']) || !is_numeric($_POST['carteid'])) {
         return fctErrorMSG('Aucune carte sélectionnée.', $errorUrl1);
     }
     //Vérifier si un NIP a été saisie
     if (!isset($_POST['nip'])) {
         return fctErrorMSG('Aucun NIP spécifiée.', $errorUrl, array('carteid' => $_POST['carteid']));
     }
     //Créer la carte + compte
     $query = 'SELECT *' . ' FROM `' . DB_PREFIX . 'banque_cartes`' . ' LEFT JOIN `' . DB_PREFIX . 'banque_comptes` ON (`compte_banque` = `carte_banque` AND `compte_compte` = `carte_compte`)' . ' WHERE `carte_id` = :carteId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':carteId', $_POST['carteid'], PDO::PARAM_INT);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la carte existe
     if ($arr === false) {
         fctBugReport('Cette carte n\'existe pas', array('perso' => $perso, 'query' => $query), __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__);
     }
     //Créer le compte de banque
     $compte = new Member_BanqueCompte($arr);
     //Créer la carte bancaire
     $carte = $compte->getCarte($_POST['carteid'], $arr);
     //Valider si la carte est active ou non
     if (!$carte->isValid()) {
         return fctErrorMSG('Cette carte à été désactivée.', $errorUrl1);
     }
     //Placer les informations sur l'accès dans le template
     $tpl->set('CARD_ID', $_POST['carteid']);
     $tpl->set('NIP', $_POST['nip']);
     $tpl->set('COMPTE', $compte->getNoBanque() . '-' . $compte->getNoCompte());
     //Valider le montant d'argent à retirer
     $montant = round($_POST['retrait'], 2);
     if (!is_numeric($montant) || $montant <= 0) {
         return fctErrorMSG('Montant invalide.', '?m=Action_Lieu_Guichet3', array('carteid' => $_POST['carteid'], 'nip' => $_POST['nip']));
     }
     //Valider si le montant
     if ($compte->getCash() < $montant && $compte->getCash() != -1) {
         return fctErrorMSG('Tentative de retrait supérieur au montant maximal autorisé.', $errorUrl3, array('carteid' => $_POST['carteid'], 'nip' => $_POST['nip']));
     }
     //Retirer l'argent du compte
     $compte->changeCash('-', $montant);
     $compte->setCash();
     //Ajouter l'argent au perso
     $perso->changeCash('+', $montant);
     $perso->setCash();
     //Retirer les PA au perso
     $perso->changePa('-', 1);
     $perso->setPa();
     //Ajouter le message à l'historique bancaire
     Member_BanqueCompte::addHist($noCompte, '', 'RGUI', $montant, 0, $compte->getCash() - $montant);
     //Copier le message dans les HE
     Member_He::add('', $perso->getId(), 'parler', "Vous effectuez un retrait de " . fctCreditFormat($montant, true) . " au guichet automatique.");
     //Rafraichir le HE
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/herefresh.htm', __FILE__, __LINE__);
 }
 /** Effectuer la transaction
  * <br> La date pour la prochaine transaction est repoussée au moins suivant.
  * <br> La fonction peut lever une exception de type GameException si un des comptes
  * <br> n'est associé à rien.
  */
 public function effectuerTransaction()
 {
     /* Instances des comptes concernés */
     $compteFrom = Member_BanqueCompte::getCompteFromId($this->compteIdFrom);
     $compteTo = Member_banqueCompte::getCompteFromId($this->compteIdTo);
     /* On effectue la transaction que si les fonds sont suffisants dans le compte emetteur */
     if ($this->value <= $compteFrom->getCash() || $compteFrom->getCash() == -1) {
         $compteFrom->changeCash('-', $this->value);
         $compteTo->changeCash('+', $this->value);
         /* todo : gérer avec une transaction pour éviter les problèmes */
         $compteFrom->setCash();
         $compteTo->setCash();
         /* Ajouter la transaction aux historiques */
         $compteFrom->add_bq_hist($compteTo->getNoBanque() . '-' . $compteTo->getNoCompte(), 'STRF', $this->value, 0);
         $compteTo->add_bq_hist($compteFrom->getNoBanque() . '-' . $compteFrom->getNoCompte(), 'RTRF', 0, $this->value);
     }
     /* Repousser le prochain transfert 1 mois plus tard */
     $this->date = strtotime("+1 month", $this->date);
     $this->setData();
 }
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     $errorUrl1 = '?popup=1&amp;m=Action_Lieu_Guichet';
     $errorUrl2 = '?popup=1&amp;m=Action_Lieu_Guichet2';
     $errorUrl3 = '?popup=1&amp;m=Action_Lieu_Guichet3historique';
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         return fctErrorMSG('Votre n\'êtes pas en état d\'effectuer cette action.', $errorUrl1);
     }
     //Vérifier si une carte à été sélectionnée
     if (!isset($_POST['carteid'])) {
         return fctErrorMSG('Aucune carte sélectionnée.', $errorUrl1);
     }
     //Valider si le NIP a été saisi
     if (!isset($_POST['nip'])) {
         return fctErrorMSG('Aucun NIP spécifiée.', $errorUrl2, array('carteid' => $_POST['carteid']));
     }
     if (!isset($_POST['trsid'])) {
         return fctErrorMSG('Transaction invalide (1).', $errorUrl3, array('carteid' => $_POST['carteid'], 'nip' => $_POST['nip']));
     }
     //Créer la carte + compte
     $query = 'SELECT *' . ' FROM `' . DB_PREFIX . 'banque_cartes`' . ' LEFT JOIN `' . DB_PREFIX . 'banque_comptes` ON (`compte_banque` = `carte_banque` AND `compte_compte` = `carte_compte`)' . ' WHERE `carte_id` = :carteId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':carteId', $_POST['carteid'], PDO::PARAM_INT);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la carte existe dans la base de données
     if ($arr === false) {
         fctBugReport('Cette carte n\'existe pas', array('perso' => $perso, 'query' => $query), __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__);
     }
     //Créer le compte bancaire
     $compte = new Member_BanqueCompte($arr);
     //Créer la carte
     $carte = $compte->getCarte($_POST['carteid'], $arr);
     //Valider si la carte est active ou non
     if (!$carte->isValid()) {
         return fctErrorMSG('Cette carte à été désactivée.', $errorUrl1);
     }
     //Valider le NIP
     if ($carte->getNip() != $_POST['nip']) {
         return fctErrorMSG('NIP invalide.', $errorUrl2, array('carteid' => $_POST['carteid']));
     }
     //Charger l'historique des transactions
     $noCompte = $compte->getNoBanque() . '-' . $compte->getNoCompte();
     $query = 'SELECT * ' . ' FROM `' . DB_PREFIX . 'banque_historique`' . ' WHERE `compte`=:noCompte' . ' AND `id`=:id;';
     $prep = $db->prepare($query);
     $prep->bindValue(':noCompte', $noCompte, PDO::PARAM_STR);
     $prep->bindValue(':id', $_POST['trsid'], PDO::PARAM_INT);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la transaction existe dans la base de données
     if ($arr === false) {
         return fctErrorMSG('Transaction invalide (2).', $errorUrl3, array('carteid' => $_POST['carteid'], 'nip' => $_POST['nip']));
     }
     //Récolter et formater les informations relative à la transaction
     $arr['date'] = fctToGameTime($arr['date'], false, true);
     $arr['solde'] = fctCreditFormat($arr['solde'], true);
     //Passer les informations au template
     $tpl->set('CARD_ID', $_POST['carteid']);
     $tpl->set('NIP', $_POST['nip']);
     $tpl->set('COMPTE', $compte->getNoBanque() . '-' . $compte->getNoCompte());
     //Afficher la page adéquate selon le type de transaction
     switch ($arr['code']) {
         case "RETR":
             $arr['montant'] = fctCreditFormat($arr['retrait']);
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailsdirect.htm', __FILE__, __LINE__);
             break;
         case "DPOT":
             $arr['montant'] = fctCreditFormat($arr['depot']);
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailsdirect.htm', __FILE__, __LINE__);
             break;
         case "RTRF":
             $arr['montant'] = fctCreditFormat($arr['depot']);
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailstransfert.htm', __FILE__, __LINE__);
             break;
         case "STRF":
             $arr['montant'] = fctCreditFormat($arr['retrait']);
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailstransfert.htm', __FILE__, __LINE__);
             break;
         default:
             $tpl->set('TRANSACTION', $arr);
             return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique_detailsnodetails.htm', __FILE__, __LINE__);
             break;
     }
 }
Exemple #21
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     $errorUrl = '?popup=1&amp;m=Action_Lieu_Boutique';
     //Déclaration des variables pour cette action
     $pacost = array();
     $pacost['achat'] = 5;
     $pacost['nego'] = 20;
     $pacost['vol'] = 40;
     $msg = '';
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         return fctErrorMSG('Votre n\'êtes pas en état d\'effectuer cette action.', $errorUrl);
     }
     //Valider si le lieu actuel est une boutique
     if (!$perso->getLieu()->isBoutique()) {
         return fctErrorMSG('Ce lieu n\'est pas une boutique.');
     }
     //Valider si le mode d'achat à été sélectionn.
     if (!isset($_POST['achat_type'])) {
         return fctErrorMSG('Vous n\'avez pas sélectionné le mode d\'achat.', $errorUrl);
     }
     //Valider si le mode d'achat est possible:
     if ($_POST['achat_type'] != 'achat' && $_POST['achat_type'] != 'nego' && $_POST['achat_type'] != 'vol') {
         return fctErrorMSG('Le mode d\'achat est invalide.', $errorUrl);
     }
     //Valider si le type de paiement à été sélectionné (dans le cas ou on ne commet pas un vol)
     if (!isset($_POST['pay_type']) && $_POST['achat_type'] != 'vol') {
         return fctErrorMSG('Vous n\'avez pas sélectionné le mode de paiement.', $errorUrl);
     }
     //Valider si le perso possède assez de PA
     if ($perso->getPa() <= $pacost[$_POST['achat_type']]) {
         return fctErrorMSG('Vous n\'avez pas assez de PA.', $errorUrl);
     }
     //Variables des totaux
     $prTotal = 0;
     $prixTotal = 0;
     //Achat
     $itemsList = '';
     //Achat
     $prixVenteTotal = 0;
     //Vente
     $itemsVenteList = '';
     //Vente
     $marchandage = false;
     //... Des items à vendre
     $i = 0;
     $vente = false;
     while ($item = $perso->getInventaire($i++)) {
         if (isset($_POST['itemv' . $item->getInvId()])) {
             //Valider que le perso possède l'item
             $found = false;
             $b = 0;
             while ($bitem = $perso->getLieu()->getBoutiqueInventaire($b++)) {
                 if ($bitem->getDbId() == $item->getDbId()) {
                     $found = true;
                     break;
                 }
             }
             if (!$found) {
                 return fctErrorMSG('Vous tentez de vendre un item que la boutique ne veux pas.', $errorUrl);
             }
             //Valider si la quantité est possible
             $qte = $_POST['itemv' . $item->getInvId()];
             $qte = round($qte);
             if (!is_numeric($qte) || $qte < 0) {
                 return fctErrorMSG('Les quantités doivent être numérique et supérieures à zéro.', $errorUrl);
             }
             if ($qte > $item->getQte()) {
                 return fctErrorMSG('Vous ne pouvez vendre plus d\'item que vous n\'avez.', $errorUrl);
             }
             if ($qte > 0) {
                 //Calculer les totaux
                 $prTotal -= $item->getPr();
                 $prixVenteTotal += $bitem->getBoutiquePrixAchat() * $qte;
                 //Générer la liste des items pour l'inclure dans le message de conclusion
                 $itemsVenteList .= ($itemsVenteList != '' ? ',' : '') . $qte . 'x[i]' . $item->getNom() . '[/i]';
                 $vente = true;
             }
         }
     }
     //Valider les items ... à acheter
     $i = 0;
     $achat = false;
     while ($item = $perso->getLieu()->getBoutiqueInventaire($i++)) {
         if (isset($_POST['itema' . $item->getInvId()])) {
             $qte = $_POST['itema' . $item->getInvId()];
             $qte = round($qte);
             //Valider si la quantité est possible
             if (!is_numeric($qte) || $qte < 0) {
                 return fctErrorMSG('Les quantités doivent être numérique et supérieures à zéro.', $errorUrl);
             }
             if ($qte > $item->getQte()) {
                 return fctErrorMSG('Vous ne pouvez acheter plus d\'items qu\'il y en a de proposés.', $errorUrl);
             }
             if ($qte > 0) {
                 //Calculer les totaux
                 $prTotal += $item->getPr();
                 $prixTotal += $item->getBoutiquePrixVente() * $qte;
                 //Générer la liste des items pour l'inclure dans le message de conclusion
                 $itemsList .= ($itemsList != '' ? ',' : '') . $qte . 'x[i]' . $item->getNom() . '[/i]';
                 $achat = true;
             }
         }
     }
     //Valider si le perso possède assez de PR disponible
     if ($perso->getPr() <= $perso->getPrMax() && $perso->getPrMax() - $perso->getPr() < $prTotal) {
         return fctErrorMSG('Vous n\'avez pas assez de PR. (' . $prTotal . ' requis, ' . ($perso->getPrMax() - $perso->getPr()) . ' disponible)');
     }
     //Valider si le joueur a sélectionné des items à vendre ou à achaté
     // ( éviter le cas ou il clique 'achat' sans rien sélectionner )
     if ($_POST['buy'] && !$vente && !$achat) {
         return fctErrorMSG('Vous n\'avez sélectionné aucun objet.', $errorUrl);
     }
     //Valider si la personne tente de vendre et de voler en meme temps
     //(elle ne recevrait pas l'argent de ses ventes)
     if ($vente && $_POST['achat_type'] == 'vol') {
         return fctErrorMSG('Vous ne pouvez pas vendre et voler dans la même action.', $errorUrl);
     }
     if ($_POST['achat_type'] === 'vol' && !$perso->getLieu()->canVol()) {
         return fctErrorMSG('Le vol n\'est pas envisageable dans ce lieu.', $errorUrl);
     }
     if ($achat || $vente) {
         switch ($_POST['achat_type']) {
             case 'achat':
                 if ($achat) {
                     $msg .= "Vous effectuez l'achat de " . $itemsList . "\n";
                     $vol = false;
                     $achat = true;
                 }
                 if ($vente) {
                     $msg .= "Vous effectuez la vente de " . $itemsVenteList . "\n";
                     $vol = false;
                     $vente = true;
                 }
                 $msg .= $perso->setStat(array('INT' => '+01', 'FOR' => '-01'));
                 break;
             case 'nego':
                 if ($achat) {
                     $msg .= "Vous tentez la négociation pour acheter " . $itemsList . "\n";
                     $vol = false;
                     $achat = true;
                 }
                 if ($vente) {
                     $msg .= "Vous tentez la négociation pour vendre " . $itemsVenteList . "\n";
                     $vol = false;
                     $vente = true;
                 }
                 $chances_reussite = $perso->getChancesReussite('MRCH');
                 $de = rand(0, 100);
                 if (DEBUG_MODE) {
                     echo "<br />" . $de . "<" . $chances_reussite;
                 }
                 if ($de < $chances_reussite) {
                     //Reussite
                     $marchandage = true;
                     //Calculer le rabais
                     $compId = $perso->convCompCodeToId('MRCH');
                     $level = $perso->getCompRealLevel($compId);
                     $rabais = rand(1, $level * 5 + 5);
                     //De 1 à 65%
                     $prixTotal *= (100 - $rabais) / 100;
                     $prixVenteTotal *= 1 + (100 - $rabais) / 100;
                     $msg .= " et vous arrivez à obtenir une réduction de " . round($rabais, 2) . "%, soit un prix d'achat de " . $prixTotal . GAME_DEVISE . " et un prix de vente de " . $prixVenteTotal . GAME_DEVISE . ".\n";
                     $msg .= $perso->setStat(array('INT' => '+02', 'DEX' => '-01', 'FOR' => '-01'));
                 } else {
                     $msg .= $perso->setStat(array('INT' => '+01', 'FOR' => '-01'));
                     $msg .= " mais c'est un échec.\n";
                 }
                 $msg .= $perso->setComp(array('MRCH' => rand(1, 3)));
                 break;
             case 'vol':
                 $msg .= "Vous tentez le vol de " . $itemsList;
                 $vol = true;
                 $chances_reussite = $perso->getChancesReussite('PCKP');
                 $de = rand(0, 100);
                 echo "<br />" . $de . "<" . $chances_reussite;
                 if ($de < $chances_reussite) {
                     //Reussite
                     $achat = true;
                     $prixTotal = 0;
                     $msg .= " avec succès.";
                 } else {
                     $achat = false;
                     $msg .= " mais c'est un échec.";
                 }
                 $msg .= $perso->setComp(array('PCKP' => rand(1, 3)));
                 break;
         }
     }
     $clientPay = $prixTotal >= $prixVenteTotal;
     //True = le client paie, False = la boutique paie.
     if ($clientPay) {
         $differencePrix = $prixTotal - $prixVenteTotal;
     } else {
         $differencePrix = $prixVenteTotal - $prixTotal;
     }
     //Vérifier les fond disponible selon le mode de paiement
     if ($achat && !$vol || $vente) {
         if ($_POST['pay_type'] == 'cash') {
             //Valider le montant
             if ($clientPay && $perso->getCash() < $differencePrix) {
                 return fctErrorMSG('Vous n\'avez pas assez d\'argent pour effectuer cette transaction.', $errorUrl);
             }
             if (!$clientPay && $perso->getLieu()->getBoutiqueCash() < $differencePrix) {
                 return fctErrorMSG('La boutique ne possède pas suffisamment pour vous acheter pour vous payer ' . $differencePrix . GAME_DEVISE . '.', $errorUrl);
             }
             //Débiter le perso
             $perso->changeCash('+', $prixVenteTotal);
             $perso->changeCash('-', $prixTotal);
             $perso->setCash();
             //Payer la caisse de la boutique
             $perso->getLieu()->changeBoutiqueCash('+', $prixTotal);
             $perso->getLieu()->changeBoutiqueCash('-', $prixVenteTotal);
             $perso->getLieu()->setBoutiqueCash();
         } else {
             //Valider si une carte a été sélectionnée
             if (!isset($_POST['cardid'])) {
                 return fctErrorMSG('Vous n\'avez pas sélectionné de carte de guichet.', $errorUrl);
             }
             //Valider si un nip a été saisi
             if (!isset($_POST['nip']) || empty($_POST['nip'])) {
                 return fctErrorMSG('Vous n\'avez pas entré de NIP.', $errorUrl);
             }
             //Instancier la carte de guichet sélectionnée
             $i = 0;
             while ($item = $perso->getInventaire($i++)) {
                 if ($item instanceof Member_ItemCartebanque) {
                     if ($item->getInvId() == $_POST['cardid']) {
                         $CARTE = $item;
                         break;
                     }
                 }
             }
             //Valider si la carte (item) a été trouvée en inventaire
             if (!isset($CARTE)) {
                 return fctErrorMSG('Carte de guichet introuvable.', $errorUrl);
             }
             //Trouver la carte et son accès
             $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_cartes' . ' WHERE carte_id=:carteId;';
             $prep = $db->prepare($query);
             $prep->bindValue(':carteId', $item->getNoCarte(), PDO::PARAM_INT);
             $prep->executePlus($db, __FILE__, __LINE__);
             $arr = $prep->fetch();
             $prep->closeCursor();
             $prep = NULL;
             //Valider si la carte est associée à un compte
             if ($arr === false) {
                 return fctErrorMSG('Carte de guichet est désactivée.', $errorUrl);
             }
             //Instancier la carte
             $CARTE_ACCESS = new Member_BanqueCarte($arr);
             //Valider si la carte est ... valide
             if (!$CARTE_ACCESS->isValid()) {
                 return fctErrorMSG('Carte de guichet est désactivée pour le moment.', $errorUrl);
             }
             //Valider si le NIP est correcte
             if ($CARTE_ACCESS->getNip() != $_POST['nip']) {
                 return fctErrorMSG('NIP est erronné.', $errorUrl);
             }
             //Rechercher le compte relié à la carte
             $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_cartes' . ' LEFT JOIN ' . DB_PREFIX . 'banque_comptes ON (compte_banque = carte_banque AND compte_compte = carte_compte)' . ' WHERE carte_id =:carteId' . ' LIMIT 1;';
             $prep = $db->prepare($query);
             $prep->bindValue(':carteId', $item->getNoCarte(), PDO::PARAM_INT);
             $prep->executePlus($db, __FILE__, __LINE__);
             $arr = $prep->fetch();
             $prep->closeCursor();
             $prep = NULL;
             //Valider si le compte existe
             if ($arr === false) {
                 return fctErrorMSG('Le compte est innexistant.', $errorUrl);
             }
             //Instancier le compte
             $COMPTE = new Member_BanqueCompte($arr);
             //Valider si le compte possède assez d'argent pour payer le total
             if ($clientPay && $COMPTE->getCash() < $differencePrix && $COMPTE->getCash() != -1) {
                 return fctErrorMSG('Compte sans fond.', $errorUrl);
             }
             //Rechercher le compte bancaire de la boutique
             $query = 'SELECT * ' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_banque=:banque' . ' AND compte_compte=:compte' . ' LIMIT 1;';
             $prep = $db->prepare($query);
             $prep->bindValue(':banque', $perso->getLieu()->getBoutiqueNoBanque(), PDO::PARAM_STR);
             $prep->bindValue(':compte', $perso->getLieu()->getBoutiqueNoCompte(), PDO::PARAM_STR);
             $prep->executePlus($db, __FILE__, __LINE__);
             $arr = $prep->fetch();
             $prep->closeCursor();
             $prep = NULL;
             //Valider si le compte de la boutique existe
             if ($arr === false) {
                 return fctErrorMSG('Le compte de la boutique est innexistant.', $errorUrl);
             }
             //Instancier le compte bancaire de la boutique
             $COMPTE_BOUTIQUE = new Member_BanqueCompte($arr);
             //Valider si le compte possède assez d'argent pour payer le total
             if (!$clientPay && $COMPTE_BOUTIQUE->getCash() < $differencePrix) {
                 return fctErrorMSG('Le compte de la boutique manque de fond.', $errorUrl);
             }
             //Débiter le compte du perso
             $COMPTE->changeCash($clientPay ? '-' : '+', $differencePrix);
             $COMPTE->setCash();
             $COMPTE->add_bq_hist($COMPTE_BOUTIQUE->getNoBanque() . '-' . $COMPTE_BOUTIQUE->getNoCompte(), '', 'SDPD', $differencePrix);
             //Payer le compte de la boutique
             $COMPTE_BOUTIQUE->changeCash($clientPay ? '+' : '-', $differencePrix);
             $COMPTE_BOUTIQUE->setCash();
             $COMPTE_BOUTIQUE->add_bq_hist($COMPTE->getNoBanque() . '-' . $COMPTE->getNoCompte(), 'RCPD', 0, $differencePrix);
         }
     }
     //TOUT EST PAYÉ, IL FAUT MAINTENANT TRANSFÉRER CEUX-CI CORRECTEMENT.
     if ($achat) {
         $i = 0;
         while ($item = $perso->getLieu()->getBoutiqueInventaire($i++)) {
             if (isset($_POST['itema' . $item->getInvId()])) {
                 $qte = $_POST['itema' . $item->getInvId()];
                 if ($qte > 0) {
                     $item->transfererVersPerso($perso, $qte);
                 }
             }
         }
         //Historique d'achat
         if (!$vol) {
             $perso->getLieu()->addBoutiqueHistorique('vente', $prixTotal, $itemsList, $marchandage, $_POST['pay_type'] != 'cash');
         }
     }
     if ($vente) {
         $i = 0;
         while ($item = $perso->getInventaire($i++)) {
             if (isset($_POST['itemv' . $item->getInvId()])) {
                 $qte = $_POST['itemv' . $item->getInvId()];
                 if ($qte > 0) {
                     $item->transfererVersBoutique($perso->getLieu(), $qte);
                 }
             }
         }
         //Historique de vente
         $perso->getLieu()->addBoutiqueHistorique('achat', $prixVenteTotal, $itemsVenteList, $marchandage, $_POST['pay_type'] != 'cash');
     }
     $perso->refreshInventaire();
     //Modifier les PA
     if ($achat) {
         $perso->changePa('-', $pacost[$_POST['achat_type']]);
         $perso->setPa();
     }
     //Copier le message dans les HE
     if (!empty($msg)) {
         Member_He::add(NULL, $perso->getId(), 'boutique', $msg);
     }
     //Rafraichir le HE
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/herefresh.htm', __FILE__, __LINE__);
 }
Exemple #22
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         die('00|' . rawurlencode('Votre n\'êtes pas en état d\'effectuer cette action.'));
     }
     //Vérifier si une carte à été sélectionnée
     if (!isset($_POST['carteid'])) {
         die('01|' . rawurlencode('Aucune carte sélectionnée.'));
     }
     $tpl->set('CARD_ID', $_POST['carteid']);
     //Valider si le NIP est fourni
     if (!isset($_POST['nip'])) {
         die('02|' . rawurlencode('Aucun NIP spécifiée.'));
     }
     $tpl->set('NIP', $_POST['nip']);
     //Créer la carte + compte
     $query = 'SELECT * ' . ' FROM `' . DB_PREFIX . 'banque_cartes`' . ' LEFT JOIN `' . DB_PREFIX . 'banque_comptes` ON (`compte_banque` = `carte_banque` AND `compte_compte` = `carte_compte`)' . ' WHERE `carte_id` = :carteId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':carteId', $_POST['carteid'], PDO::PARAM_INT);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la carte existe
     if ($arr === false) {
         die('03|' . rawurlencode('Cette carte à été supprimée ou n\'existe pas.'));
     }
     //Créer le compte bancaire
     $compte = new Member_BanqueCompte($arr);
     //Créer la carte
     $carte = $compte->getCarte($_POST['carteid'], $arr);
     $tpl->set('COMPTE', $compte->getNoBanque() . '-' . $compte->getNoCompte());
     //Valider si la carte est active ou non
     if (!$carte->isValid()) {
         die('03|' . rawurlencode('Cette carte est actuellement désactivée.'));
     }
     //Formater le montant pour qu'il soit au bon format
     $_POST['montant'] = str_replace(',', '.', $_POST['montant']);
     $montant = round($_POST['montant'], 2);
     //Valider le montant d'argent à retirer
     if (!is_numeric($montant) || $montant <= 0) {
         die('04|' . rawurlencode('Montant invalide.'));
     }
     //Valider si le perso possède le montant qu'il retire
     if ($compte->getCash() < $montant && $compte->getCash() != -1) {
         die('05|' . rawurlencode('Vous ne pouvez pas retirer plus que le solde de votre compte.'));
     }
     //Retirer l'argent du compte
     $compte->changeCash('-', $montant);
     $compte->setCash();
     //Ajouter l'argent au perso
     $perso->changeCash('+', $montant);
     $perso->setCash();
     //Retirer les PA au perso
     $perso->changePa('-', 1);
     $perso->setPa();
     //Ajouter la transaction à l'historique
     $compte->add_bq_hist('', 'RGUI', $montant, 0);
     //Confirmer les modifications avec les informations sur les changements
     die($_POST['id'] . '|OK|' . $compte->getCash() . '|' . $perso->getCash() . '|' . $perso->getPa());
 }
Exemple #23
0
 public function majCompte($compte, $nip)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     if (empty($compte)) {
         //MAJ numero de compte et nip -> vider les informations.
         $query = 'UPDATE ' . DB_PREFIX . 'item_inv' . ' SET inv_nocompte="",' . ' inv_nobanque="",' . ' inv_nip=""' . ' WHERE inv_id=:id' . ' LIMIT 1;';
         $prep = $db->prepare($query);
         $prep->bindValue(':id', $this->getInvId(), PDO::PARAM_INT);
         $prep->execute($db, __FILE__, __LINE__);
         $prep->closeCursor();
         $prep = NULL;
         return true;
     }
     //Valider le découpage du numéro
     $occ = preg_match('/([0-9]{4})-([0-9]{4})-([0-9]{4})-([0-9]{4})/', $compte);
     if ($occ == 0) {
         throw new Exception('Le # de compte doit être au format XXXX-XXXX-XXXX-XXXX.');
         return false;
     }
     $compte_exp = explode("-", $compte);
     $nobanque = $compte_exp[0];
     $nocompte = $compte_exp[1] . '-' . $compte_exp[2] . '-' . $compte_exp[3];
     //recup des info sur le compte du téléphone et sur le contenu de la partie compte du téléphone
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' LEFT JOIN ' . DB_PREFIX . 'banque ON (banque_no=compte_banque)' . ' WHERE compte_compte=:compte' . ' AND compte_banque=:banque' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':compte', $nocompte, PDO::PARAM_STR);
     $prep->bindValue(':banque', $nobanque, PDO::PARAM_STR);
     $prep->execute($db, __FILE__, __LINE__);
     $arrCompteTel = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     $compteTel = new Member_BanqueCompte($arrCompteTel);
     $banque = new Member_Banque($arrCompteTel);
     if ($banque->getSupportTelephone() != 1) {
         throw new Exception('Ce compte n\'est pas celui d\'une agence téléphonique.');
         return false;
     }
     if (empty($nip) && $this->getNip() != NULL) {
         if ($compteTel->getNip() != $this->getNip()) {
             throw new Exception('Le nip précédemment sauvegardé ne correspond pas.');
             return false;
         }
         $query = 'UPDATE ' . DB_PREFIX . 'item_inv' . ' SET inv_nocompte=:compte,' . ' inv_nobanque=:banque' . ' WHERE inv_id=:id' . ' LIMIT 1;';
         $prep = $db->prepare($query);
         $prep->bindValue(':compte', $nocompte, PDO::PARAM_STR);
         $prep->bindValue(':banque', $nobanque, PDO::PARAM_STR);
         $prep->bindValue(':id', $this->getInvId(), PDO::PARAM_INT);
         $prep->execute($db, __FILE__, __LINE__);
         $prep->closeCursor();
         $prep = NULL;
     } else {
         if (!is_numeric($nip)) {
             throw new Exception('Ce NIP n\'est pas numérique.');
             return false;
         }
         if ($compteTel->getNip() != $nip) {
             throw new Exception('Le nip ne correspond pas.');
             return false;
         }
         //MAJ numero de compte et nip
         $query = 'UPDATE ' . DB_PREFIX . 'item_inv' . ' SET inv_nocompte=:compte,' . ' inv_nobanque=:banque,' . ' inv_nip=:nip' . ' WHERE inv_id=:id' . ' LIMIT 1;';
         $prep = $db->prepare($query);
         $prep->bindValue(':compte', $nocompte, PDO::PARAM_STR);
         $prep->bindValue(':banque', $nobanque, PDO::PARAM_STR);
         $prep->bindValue(':nip', $nip, PDO::PARAM_INT);
         $prep->bindValue(':id', $this->getInvId(), PDO::PARAM_INT);
         $prep->execute($db, __FILE__, __LINE__);
         $prep->closeCursor();
         $prep = NULL;
     }
     return true;
 }
Exemple #24
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     $actionPa = 3;
     $cout_ouverture = 7500;
     if ($perso->getPa() <= $actionPa) {
         return fctErrorMsg('Vous n\'avez pas assez de PA pour effectuer cette action.');
     }
     if (!isset($_POST['url'])) {
         return fctErrorMsg('Paramètre requis manquant.');
     }
     //Valider si le joueur à accès à Internet
     if (Member_Action_Item_Navigateur::checkAccess($perso) === false) {
         return fctErrorMSG('Vous n\'avez pas accès à Internet.');
     }
     //Vérifier l'état du perso
     if (!$perso->isConscient()) {
         die('01|' . 'Votre n\'êtes pas en état d\'effectuer cette action.');
     }
     if ($perso->getPa() < $actionPa) {
         die('02|' . 'Vous n\'avez pas assez de PA pour effectuer cette action.');
     }
     if (!preg_match('/^[A-Za-z0-9\\.-_]+$/', $_POST['url'], $matches)) {
         die('03|' . 'L\'URL dU site est invalide.');
     }
     if (!preg_match('/^([0-9]{4})-([0-9]{4}-[0-9]{4}-[0-9]{4})-([0-9]+)$/', $_POST['no'], $matches)) {
         die('04|' . 'Le # de la carte est invalide.');
     }
     $carte_banque = $matches[1];
     $carte_compte = $matches[2];
     $carte_id = $matches[3];
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_cartes' . ' WHERE 	carte_banque=:carteBanque' . ' AND carte_compte=:carteCompte' . ' AND carte_id =:carteId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':carteBanque', $carte_banque, PDO::PARAM_STR);
     $prep->bindValue(':carteCompte', $carte_compte, PDO::PARAM_STR);
     $prep->bindValue(':carteId', $carte_id, PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $carte = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($carte === false) {
         die('05|' . 'Cette carte est innexistante.');
     }
     if ($carte['carte_valid'] == 0) {
         die('06|' . 'Cette carte a été désactivée.');
     }
     if ($carte['carte_nip'] != $_POST['nip']) {
         die('07|' . 'NIP erroné.');
     }
     //Valider le montant du compte associé à la carte
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_banque=:carteBanque' . ' AND compte_compte=:carteCompte;';
     $prep = $db->prepare($query);
     $prep->bindValue(':carteBanque', $carte_banque, PDO::PARAM_STR);
     $prep->bindValue(':carteCompte', $carte_compte, PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr === false) {
         die('08|' . 'Le compte associé à la carte a été fermé.');
     }
     $compte = new Member_BanqueCompte($arr);
     if ($compte->getCash() < $cout_ouverture) {
         die('09|' . 'Compte sans fond.');
     }
     //Vérifier si l'URL existe déjà
     $query = 'SELECT id' . ' FROM ' . DB_PREFIX . 'sitesweb' . ' WHERE url=:url;';
     $prep = $db->prepare($query);
     $prep->bindValue(':url', $_POST['url'], PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr !== false) {
         die('10|' . 'Cette URL existe déjà, veuillez en choisir une autre.');
     }
     //Tout est ok, Créer le site !!!!!
     $perso->changePa('-', $actionPa);
     $perso->setPa();
     $compte->changeCash('-', $cout_ouverture);
     $compte->setCash();
     $compte->add_bq_hist('', 'WWWA', $cout_ouverture);
     $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb' . ' (`url`, `titre`, `acces`)' . ' VALUES' . ' (:url, :titre, "pub");';
     $prep = $db->prepare($query);
     $prep->bindValue(':url', $_POST['url'], PDO::PARAM_STR);
     $prep->bindValue(':titre', $_POST['titre'], PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $prep->closeCursor();
     $prep = NULL;
     $siteid = $db->lastInsertId();
     //Créer l'accès admin au site
     $query = 'INSERT INTO ' . DB_PREFIX . 'sitesweb_acces' . ' (`site_id`, `user`, `pass`, `accede`, `poste`, `modifier`, `admin`)' . ' VALUES' . ' (:siteId, :user, :pass, "1", "1", "1", "1");';
     $prep = $db->prepare($query);
     $prep->bindValue(':siteId', $siteid, PDO::PARAM_INT);
     $prep->bindValue(':user', $_POST['user'], PDO::PARAM_STR);
     $prep->bindValue(':pass', $_POST['pass'], PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $prep->closeCursor();
     $prep = NULL;
     die('OK|' . $perso->getPa() . '|' . $_POST['url']);
     //Tout est OK
 }
Exemple #25
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     $coutPa = 1;
     if ($perso->getPa() <= $coutPa) {
         return fctErrorMSG('Vous n\'avez pas assez de PA pour effectuer cette action.', $errorUrl);
     }
     //Vérifier les paramêtres requis
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     //Valider si la case de confirmation à bien été cochée
     if (!isset($_POST['c_check'])) {
         return fctErrorMSG('Vous devez cocher la case pour confirmer que vous voulez bien fermer ce compte.', '?popup=1&amp;m=Action_Lieu_Banque');
     }
     //Valider le # du compte (TODO: REGEX !!!!)
     if (strlen($_POST['compte']) != 19) {
         return fctErrorMSG('Ce compte est invalide (no invalide).');
     }
     $banque_no = substr($_POST['compte'], 0, 4);
     $compte_no = substr($_POST['compte'], 5, 14);
     $tpl->set('COMPTE', $_POST['compte']);
     //Rechercher le compte afin d'y faire des opérations.
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_banque=:banque' . ' AND compte_compte:compte' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':compte', $compte_no, PDO::PARAM_STR);
     $prep->bindValue(':banque', $banque_no, PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si le compte existe
     if ($arr === false) {
         return fctErrorMSG('Ce compte n\'existe pas.');
     }
     //Instancier le compte
     $compte = new Member_BanqueCompte($arr);
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //Effectuer le transfert d'argent (Transférer l'argent du compte vers le perso)
     $perso->changeCash('+', $compte->getCash());
     $perso->setCash();
     //Effacer le compte
     $query = 'DELETE FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_id=:compteId' . ' AND compte_idperso=:persoId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':compteId', $_POST['id'], PDO::PARAM_INT);
     $prep->bindValue(':persoId', $perso->getId(), PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $prep->closeCursor();
     $prep = NULL;
     //Retirer les PA
     $perso->changePa('-', $coutPa);
     $perso->setPa();
     //Ajouter l'ouverture à l'historique
     $compte->add_bq_hist('', 'FRMT', $compte->getCash(), 0, "FERMÉ");
     //Afficher la page
     $tpl->set('PAGE', 'Action_Lieu_Banque');
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/action_redirect.htm', __FILE__, __LINE__);
 }
Exemple #26
0
 public static function cabineTelephoner(&$perso, &$numero_destinataire, &$message)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     $errorUrl = '?popup=1&amp;m=Action_Lieu_TelephonerCabine';
     //Récup des info du téléphone de l'appelé
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'item_inv' . ' LEFT JOIN ' . DB_PREFIX . 'item_db ON (db_id = inv_dbid)' . ' WHERE db_type="telephone"' . ' AND inv_notel=:noTel' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':noTel', $numero_destinataire, PDO::PARAM_STR);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     $tel_distant = new Member_ItemTelephone($arr);
     //Si le téléphone n'existe pas
     if (empty($tel_distant)) {
         return fctErrorMSG('Numéro pas attribué.', $errorUrl);
     }
     $affichage_dest = $tel_distant->getTypeAffichage();
     $lieu_perso = $perso->getLieu()->getNom();
     //Entête selon le type d'affichage que possède l'utilisateur
     if ($affichage_dest == 2) {
         $entete_mess_dest = 'Appel provenant d\'une cabine téléphonique (' . $lieu_perso . '). ';
     } else {
         $entete_mess_dest = 'Votre téléphone ne possède pas d\'afficheur. ';
     }
     $entete_mess_dest .= 'Appel reçu sur le téléphone #' . $numero_destinataire;
     $id_destinataire = $tel_distant->getIdProprio();
     $id_expediteur = $perso->getId();
     $cout_appel = 2;
     $cash_exp = $perso->getCash();
     //Valider si le personnage à assez d'argent en poche pour téléphoner de la cabine.
     if ($cash_exp < $cout_appel) {
         return fctErrorMSG('Vous n\'avez pas assez d\'argent pour passer cet appel.', $errorUrl);
     }
     //Valider si le téléphone est possédé par quelqu'un
     if ($id_destinataire === NULL) {
         return fctErrorMSG('Ca sonne occupé. Réessayer plus tard.', $errorUrl);
     }
     //Retrait du cash du portefeuille du gars
     $perso->changeCash('-', $cout_appel);
     $perso->setCash();
     //Mise de l'argent sur le compte commun
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE compte_id=1' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr === false) {
         return fctErrorMSG('Le fond commun n\'existe plus. Contacter un MJ.', $errorUrl);
     }
     $compteFC = new Member_BanqueCompte($arr);
     $compteFC->changeCash('+', $cout_appel);
     $compteFC->setCash();
     //Inscription de l'opération au fond commun
     $compteFC->add_bq_hist('', 'TELC', 0, $cout_appel);
     //Mise du message dans les HE des personnes impliquées
     $id_mess_he_dest = Member_He::add("Telephone", $id_destinataire, 'Telephone', $entete_mess_dest . "[sep]" . $message);
     $id_mess_he_exp = Member_He::add("Telephone", $id_expediteur, "Telephone", $message);
     //Log MJ
     $query = 'INSERT INTO ' . DB_PREFIX . 'log_telephone' . ' (`id_he_exp`, `id_he_dest`, `date`, `from_tel`, `from_persoid`, `to_tel`, `to_persoid`)' . ' VALUES(' . ' :fromMsgId,' . ' :toMsgId,' . ' UNIX_TIMESTAMP(),' . ' :lieu,' . ' :fromPersoId,' . ' :toNoTel,' . ' :toPersoId' . ' );';
     $prep = $db->prepare($query);
     $prep->bindValue(':fromMsgId', $id_mess_he_exp, PDO::PARAM_INT);
     $prep->bindValue(':toMsgId', $id_mess_he_dest, PDO::PARAM_INT);
     $prep->bindValue(':lieu', $lieu_perso . '(Cabine)', PDO::PARAM_STR);
     $prep->bindValue(':fromPersoId', $id_expediteur, PDO::PARAM_INT);
     $prep->bindValue(':toNoTel', $numero_destinataire, PDO::PARAM_STR);
     $prep->bindValue(':toPersoId', $id_destinataire, PDO::PARAM_INT);
     $prep->execute($db, __FILE__, __LINE__);
     $prep->closeCursor();
     $prep = NULL;
 }
Exemple #27
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante	//BUT: Démarrer un template propre à cette page
     //Vérifier les paramêtres requis
     if (!isset($_POST['compte'])) {
         return fctErrorMSG('Ce compte est invalide (aucun compte).');
     }
     //Valider le # du compte (TODO: REGEX !!!!)
     if (strlen($_POST['compte']) != 19) {
         return fctErrorMSG('Ce compte est invalide (no invalide).');
     }
     //Séparer le # de banque
     $banque_no = substr($_POST['compte'], 0, 4);
     $compte_no = substr($_POST['compte'], 5, 14);
     //Passer le # de compte au template
     $tpl->set('COMPTE', $_POST['compte']);
     //Rechercher le compte afin d'y faire des opérations.
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_banque=:banque' . ' AND compte_compte=:compte' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':compte', $compte_no, PDO::PARAM_STR);
     $prep->bindValue(':banque', $banque_no, PDO::PARAM_STR);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si le compte existe
     if ($arr === false) {
         return fctErrorMSG('Ce compte n\'existe pas (' . $_POST['compte'] . ')');
     }
     //Instancier le compte
     $compte = new Member_BanqueCompte($arr);
     //Vérifier si le compte appartiend bien au perso
     if ($compte->getIdPerso() != $perso->getId()) {
         return fctErrorMSG('Ce compte ne vous appartiend pas.');
     }
     //Lister toutes les transaction
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_historique' . ' WHERE compte=:compte' . ' ORDER BY date ASC;';
     $prep = $db->prepare($query);
     $prep->bindValue(':compte', $_POST['compte'], PDO::PARAM_STR);
     $prep->execute($db, __FILE__, __LINE__);
     $arrTrs = $prep->fetchAll();
     $prep->closeCursor();
     $prep = NULL;
     if (count($arrTrs) == 0) {
         $HISTORIQUE = array();
         $i = 0;
         foreach ($arrTrs as &$arr) {
             $HISTORIQUE[$i]['id'] = $arr['id'];
             $HISTORIQUE[$i]['date'] = fctToGameTime($arr['date']);
             //A quelle heure à été envoyé le message ?
             $HISTORIQUE[$i]['code'] = $arr['code'];
             $HISTORIQUE[$i]['depot'] = $arr['depot'] == 0 ? '' : fctCreditFormat($arr['depot']);
             $HISTORIQUE[$i]['retrait'] = $arr['retrait'] == 0 ? '' : fctCreditFormat($arr['retrait']);
             $HISTORIQUE[$i]['solde'] = fctCreditFormat($arr['solde']);
             $i++;
         }
         $tpl->set('HISTORIQUE', $HISTORIQUE);
     }
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique.htm', __FILE__, __LINE__);
 }
Exemple #28
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     $errorUrl1 = '?popup=1&amp;m=Action_Lieu_Guichet';
     $errorUrl2 = '?popup=1&amp;m=Action_Lieu_Guichet2';
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         return fctErrorMSG('Votre n\'êtes pas en état d\'effectuer cette action.', $errorUrl1);
     }
     //Vérifier si une carte à été sélectionnée
     if (!isset($_POST['carteid'])) {
         return fctErrorMSG('Aucune carte sélectionnée.', $errorUrl1);
     }
     //Valider si le NIP a été saisi
     if (!isset($_POST['nip'])) {
         return fctErrorMSG('Aucun NIP spécifiée.', $errorUrl2, array('carteid' => $_POST['carteid']));
     }
     //Créer la carte + compte
     $query = 'SELECT *' . ' FROM `' . DB_PREFIX . 'banque_cartes`' . ' LEFT JOIN `' . DB_PREFIX . 'banque_comptes` ON (`compte_banque` = `carte_banque` AND `compte_compte` = `carte_compte`)' . ' WHERE `carte_id` = :carteId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':carteId', $_POST['carteid'], PDO::PARAM_INT);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la carte existe
     if ($arr === false) {
         fctBugReport('Cette carte n\'existe pas', array('perso' => $perso, 'query' => $query), __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__);
     }
     //Créer le compte bancaire
     $compte = new Member_BanqueCompte($arr);
     //Créer la carte
     $carte = $compte->getCarte($_POST['carteid'], $arr);
     //Valider si la carte est active ou non
     if (!$carte->isValid()) {
         return fctErrorMSG('Cette carte à été désactivée.', $errorUrl1);
     }
     //Valider le NIP
     if ($carte->getNip() != $_POST['nip']) {
         return fctErrorMSG('NIP invalide.', $errorUrl2, array('carteid' => $_POST['carteid']));
     }
     //Charger l'historique des transactions
     $compteNo = $compte->getNoBanque() . '-' . $compte->getNoCompte();
     $query = 'SELECT *' . ' FROM `' . DB_PREFIX . 'banque_historique`' . ' WHERE `compte`=:noCompte;';
     $prep = $db->prepare($query);
     $prep->bindValue(':noCompte', $compteNo, PDO::PARAM_STR);
     $prep->execute($db, __FILE__, __LINE__);
     $arrAll = $prep->fetchAll();
     $prep->closeCursor();
     $prep = NULL;
     //Générer la liste de toutes les transactions et formater les données
     $historique = array();
     foreach ($arrAll as &$arr) {
         $arr['date'] = fctToGameTime($arr['date']);
         $arr['retrait'] = fctCreditFormat($arr['retrait'], true);
         $arr['depot'] = fctCreditFormat($arr['depot'], true);
         $arr['solde'] = fctCreditFormat($arr['solde'], true);
         $historique[] = $arr;
     }
     //Passer les informations sur l'accès au template
     $tpl->set('COMPTE', $compte->getNoBanque() . '-' . $compte->getNoCompte());
     $tpl->set('CARD_ID', $_POST['carteid']);
     $tpl->set('NIP', $_POST['nip']);
     $tpl->set('HISTORIQUE', $historique);
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Action/Lieu/Banque_historique.htm', __FILE__, __LINE__);
 }