Ejemplo n.º 1
0
 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__);
 }
Ejemplo n.º 2
0
 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>");
 }
Ejemplo n.º 3
0
 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>");
 }
Ejemplo n.º 4
0
 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__);
 }
Ejemplo n.º 5
0
 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>");
 }
Ejemplo n.º 6
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__);
     }
 }
Ejemplo n.º 7
0
 /** 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();
 }