Esempio n. 1
0
 public static function generatePage(&$tpl, &$session, &$account, &$mj)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     //Trouver toutes les banques et le nombre de compte ainsi que le solde des comptes
     $query = 'SELECT b.*, COUNT(c.compte_id) as comptes, SUM(compte_cash) as capital' . ' FROM ' . DB_PREFIX . 'banque as b' . ' LEFT JOIN ' . DB_PREFIX . 'banque_comptes as c ON (c.compte_banque = b.banque_no)' . ' GROUP BY c.compte_banque;';
     $prep = $db->prepare($query);
     $prep->execute($db, __FILE__, __LINE__);
     $arrAll = $prep->fetchAll();
     $prep->closeCursor();
     $prep = NULL;
     if (count($arrAll) > 0) {
         //Lister toutes les banques du jeu
         $arrBanque = array();
         foreach ($arrAll as &$arr) {
             $arr['capital'] = fctCreditFormat($arr['capital'], true);
             $arrBanque[] = $arr;
         }
         $tpl->set('BANQUES', $arrBanque);
     }
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Lieu/Banque.htm', __FILE__, __LINE__);
 }
Esempio n. 2
0
File: Mod.php Progetto: FMaz008/ccv4
 public static function generatePage(&$tpl, &$session, &$account, &$mj)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     if (isset($_POST['save'])) {
         try {
             self::save($mj);
         } catch (Exception $e) {
             return fctErrorMSG($e->getMessage());
         }
         header('location:?mj=index');
     }
     //query pour avoir les infos de la personne
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'account' . ' WHERE id=:id' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':id', $_GET['id'], PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $ACC = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //envoie des infos à l'autre page (tpl) + developpement de la requête + transformation des timestamp
     if ($ACC !== false) {
         $ACC['date_inscr'] = date('d/m/Y H \\h i', $ACC['date_inscr']);
         //transformation du timstamp
         $ACC['last_conn'] = date('d/m/Y H \\h i', $ACC['last_conn']);
         //idem
         $tpl->set('ACC', $ACC);
         //envoie des infos général
         if ($ACC['mp'] != '0') {
             //transformation du temps  pour l'expiration du membre plus
             $date_mp = array('jour' => date('d', $ACC['mp_expiration']), 'mois' => date('m', $ACC['mp_expiration']), 'annee' => date('Y', $ACC['mp_expiration']));
         } else {
             $date_mp = array('jour' => date('d'), 'mois' => date('m'), 'annee' => date('Y'));
         }
         //envoie de l'array
         $tpl->set('date_mp', $date_mp);
         //transformation du temps  pour l'heure de remise
         $remise_initiale = array('annee' => date('Y', $ACC['remise']), 'mois' => date('m', $ACC['remise']), 'jour' => date('d', $ACC['remise']), 'heure' => date('H', $ACC['remise']), 'minute' => date('i', $ACC['remise']));
         //envoie de l'array
         $tpl->set('remise_initiale', $remise_initiale);
     }
     //affichage des persos du compte :
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'perso' . ' WHERE userId=:userId;';
     $prep = $db->prepare($query);
     $prep->bindValue(':userId', $ACC['id'], PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $info_pj = $prep->fetchAll();
     $prep->closeCursor();
     $prep = NULL;
     foreach ($info_pj as &$arr) {
         $arr['cash'] = fctCreditFormat($arr['cash'], true);
     }
     //envoie des infos à l'autre page (tpl)
     $tpl->set('PERSOS', $info_pj);
     $tpl->set('ACCESS_ADMIN', $mj->accessAdmin());
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Compte/Modifier.htm');
 }
Esempio n. 3
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&m=Action_Perso_Donnercash';
     //Déclaration des variables pour cette action
     $pacost = 2;
     //PA par item
     //Vérifier l'état du perso
     if (!$perso->isConscient()) {
         return fctErrorMSG('Votre n\'êtes pas en état d\'effectuer cette action.', $errorUrl);
     }
     //Créer le template
     if ($perso->getPa() <= $pacost) {
         return fctErrorMSG('Vous n\'avez pas assez de PA.', $errorUrl);
     }
     //Cash spécifié ?
     if (!isset($_POST['cash'])) {
         return fctErrorMSG('Aucun montant.', $errorUrl);
     }
     //Vérifier la validité du montant
     if (!is_numeric($_POST['cash']) || $_POST['cash'] < 1) {
         return fctErrorMSG('Montant invalide', $errorUrl);
     }
     if ($_POST['cash'] > $perso->getCash()) {
         return fctErrorMSG('Vous ne pouvez pas transf&eacute;rer plus que vous poss&eacute;dez.', $errorUrl);
     }
     //Vérifier si un perso a bien été sélectionné
     if (!is_numeric($_POST['toPersoId'])) {
         return fctErrorMSG('Vous n\'avez pas s&eacute;lectionn&eacute; de destinataire.', $errorUrl);
     }
     //Vérifier si le perso à qui donner l'argent est présent dans le bon lieu
     $found = false;
     $i = 0;
     while ($toPerso = $perso->getLieu()->getPerso($perso, $i++)) {
         if ($toPerso->getId() == $_POST['toPersoId']) {
             $found = true;
             break;
         }
     }
     if (!$found) {
         return fctErrorMSG('Ce personnage n\'est pas dans le lieu ou vous vous trouvez actuellement.', $errorUrl);
     }
     //Tranférer l'item du perso actuel vers l'autre perso.
     $perso->changePa('-', $pacost);
     $perso->setPa();
     $perso->changeCash('-', $_POST['cash']);
     $perso->setCash();
     $toPerso->changeCash('+', $_POST['cash']);
     $toPerso->setCash();
     Member_He::add($perso->getId(), $toPerso->getId(), 'donner', "Montant d'argent transféré: " . fctCreditFormat($_POST['cash'], true));
     //Rafraichir le HE
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/herefresh.htm', __FILE__, __LINE__);
 }
Esempio n. 4
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('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__);
     }
 }
Esempio n. 5
0
 public static function generatePage(&$tpl, &$session, &$account, &$mj)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     if (!isset($_GET['id'])) {
         return fctErrorMSG('Compte non spécifié.');
     }
     //Vérifier quel est le nom de la banque
     $query = 'SELECT banque_no, banque_nom' . ' FROM ' . DB_PREFIX . 'banque' . ' WHERE banque_id=:banqueId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':banqueId', $_GET['id'], PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr === false) {
         return fctErrorMSG('Banque non-trouvée.');
     }
     $tpl->set('BANK_NAME', $arr['banque_nom']);
     $tpl->set('BANK_ID', (int) $_GET['id']);
     //Charger la liste des comptes
     $query = 'SELECT c.*, p.nom as compte_perso' . ' FROM ' . DB_PREFIX . 'banque_comptes as c' . ' LEFT JOIN ' . DB_PREFIX . 'perso as p ON (p.id = c.compte_idperso)' . ' WHERE c.compte_banque=:banqueNo' . ' ORDER BY compte_cash DESC;';
     $prep = $db->prepare($query);
     $prep->bindValue(':banqueNo', $arr['banque_no'], PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arrAll = $prep->fetchAll();
     $prep->closeCursor();
     $prep = NULL;
     if (count($arrAll) > 0) {
         //Lister toutes les banques du jeu
         $arrBanque = array();
         foreach ($arrAll as &$arr) {
             if ($arr['compte_cash'] != -1) {
                 $arr['compte_cash'] = fctCreditFormat($arr['compte_cash'], true);
             } else {
                 $arr['compte_cash'] = "illimité";
             }
             $arrBanque[] = $arr;
         }
         $tpl->set('COMPTES', $arrBanque);
     }
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Lieu/BanqueCompte.htm', __FILE__, __LINE__);
 }
Esempio n. 6
0
 public static function generatePage(&$tpl, &$session, &$account, &$mj)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     $query = 'SELECT compte_banque, compte_compte' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE compte_id=:compteId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':compteId', $_GET['id'], PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     $compte_no = $arr['compte_banque'] . '-' . $arr['compte_compte'];
     $tpl->set('COMPTE', $compte_no);
     //Lister toutes les transaction
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_historique' . ' WHERE compte=:compteNo' . ' ORDER BY date ASC;';
     $prep = $db->prepare($query);
     $prep->bindValue(':compteNo', $compte_no, PDO::PARAM_STR);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr !== false) {
         $i = 0;
         $HISTORIQUE = array();
         while ($arr = mysql_fetch_assoc($result)) {
             $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']);
             $HISTORIQUE[$i]['vers'] = $arr['compte2'];
             $i++;
         }
         $tpl->set('HISTORIQUE', $HISTORIQUE);
     }
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Mj/Lieu/BanqueCompteHistorique.htm', __FILE__, __LINE__);
 }
Esempio n. 7
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__);
 }
Esempio n. 8
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_Recycler';
     $coutPa = 5;
     //Cout de l'action
     if (isset($_POST['march'])) {
         $coutPa += 10;
     }
     //Cout du marchandage
     $remiseTotale = 0.6;
     // Pourcentage de retour sur la valeur de l'objet. 60% = 60$ pour un objet de 100$.
     if ($perso->getPa() <= $coutPa) {
         return fctErrorMSG('Vous n\'avez pas assez de PA pour effectuer cette action.', $errorUrl);
     }
     //Vérifier que le lieu dans lequel est le perso permet bien de recycler les items
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'lieu_menu`' . ' WHERE lieutech=:lieuTech' . ' AND url="Recycler"' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':lieuTech', $perso->getLieu()->getNomTech(), PDO::PARAM_STR);
     $prep->execute($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr === false) {
         return fctErrorMSG('Vous n\'êtes pas dans un lieu permettant ce type d\'action.', $errorUrl);
     }
     $vendre = true;
     $vendu = 0;
     $totalProfit = 0;
     $message = '';
     //Essayer de négocier le taux de remise
     if (isset($_POST['march'])) {
         $de = round(rand(1, 100));
         $reussite = $perso->getChancesReussite("MRCH");
         $message = "(négo) ";
         if ($de < $reussite) {
             //Calcul du nouveau % de remise
             $percReussite = $reussite / 100;
             $remiseTotale += 10 * $percReussite / 100;
         } else {
             Member_He::add(NULL, $perso->getId(), 'Recyclage', "La négociation a échoué.", HE_AUCUN, HE_UNIQUEMENT_MOI);
             $vendre = false;
         }
     }
     if ($vendre) {
         $message .= "Vous vendez:";
         //On récupère dans l'inventaire, les objets que l'utilisateur a sélectionné
         $i = 0;
         $objets = array();
         while ($item = $perso->getInventaire($i++)) {
             //Vérifier si l'item fait parti de ceux que l'on désire transférer
             if (isset($_POST[$item->getInvId() . '_qte'])) {
                 $qte = $_POST[$item->getInvId() . '_qte'];
                 if (is_numeric($qte) && $qte > 0) {
                     //Valider si la quantité à tranférer ne dépasse pas la quantité possédée
                     if ($item->getQte() < $qte) {
                         return fctErrorMSG('Vous ne pouvez pas transférer plus que vous possèdez.', $errorUrl);
                     }
                     //Valider si l'item est non-équipée
                     if ($item->isEquip()) {
                         return fctErrorMSG('Un item (' . $item->getNom() . ') dans votre sac a dos apparait comme équipé. Veuillez contacter un MJ par PPA.', $errorUrl);
                     }
                     //Définir des variables simplifiées
                     $prixOriginal = $item->getDbPrix();
                     $qteInv = $item->getQte();
                     $qteVente = $qte;
                     //Calculer le profit sur cet item(s)
                     $prixVente = round($prixOriginal * $remiseTotale * $qteVente);
                     $perso->changeCash("+", $prixVente);
                     $totalProfit += $prixVente;
                     //Retirer définitivement les items de la circulation (du jeu)
                     $qteRestante = $qteInv - $qteVente;
                     if ($qteRestante == 0) {
                         $query = 'DELETE FROM ' . DB_PREFIX . 'item_inv' . ' WHERE inv_id=:itemId' . ' LIMIT 1';
                         $prep = $db->prepare($query);
                         $prep->bindValue(':itemId', $item->getInvId(), PDO::PARAM_INT);
                         $prep->execute($db, __FILE__, __LINE__);
                         $prep->closeCursor();
                         $prep = NULL;
                     } else {
                         $query = 'UPDATE ' . DB_PREFIX . 'item_inv' . ' SET inv_qte=:qte' . ' WHERE inv_id=:itemId' . ' LIMIT 1';
                         $prep = $db->prepare($query);
                         $prep->bindValue(':qte', $qteRestante, PDO::PARAM_INT);
                         $prep->bindValue(':itemId', $item->getInvId(), PDO::PARAM_INT);
                         $prep->execute($db, __FILE__, __LINE__);
                         $prep->closeCursor();
                         $prep = NULL;
                     }
                     //Ajouter un message
                     $message .= "\n-" . $qteVente . "x" . $item->getNom() . ', pour : ' . fctCreditFormat($prixVente, true);
                     $vendu++;
                 }
             }
         }
         //Compiler les résultats
         $message .= "\nTotal : " . $vendu . ' item(s) pour ' . fctCreditFormat($totalProfit, true);
         Member_He::add(NULL, $perso->getId(), 'Système', $message, HE_AUCUN, HE_TOUS);
         $perso->setCash();
     }
     //Soustraire les PA
     $perso->changePa('-', $coutPa);
     $perso->setPa();
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/herefresh.htm', __FILE__, __LINE__);
 }
Esempio n. 9
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     //Valider si le personnage a été validé
     if (!$perso->isInscriptionValide()) {
         return fctErrorMSG('Votre personnage ' . $perso->getNom() . ' n\'a pas encore été validé par un MJ.', '?m=News', null, false);
     }
     //Valider si le personnage est non-bloqué
     if ($perso->isBloque()) {
         return fctErrorMSG('Votre personnage ' . $perso->getNom() . ' a été bloqué.', '?m=News', null, false);
     }
     //Préparer le tableau d'information
     try {
         $tpl->set('id', $perso->getId());
         //Utile pour éviter de s'auto-renommer
         $tpl->set('nom', $perso->getNom());
         $tpl->set('pa', $perso->getPa());
         $tpl->set('paMax', $perso->getPaMax());
         $tpl->set('pn', $perso->getPn());
         $tpl->set('lieu', $perso->getLieu()->getNom());
         //Peut lancer une exception
         $tpl->set('pv', $perso->getPv());
         $tpl->set('pvMax', $perso->getPvMax());
         $tpl->set('argent', fctCreditFormat($perso->getCash()));
         $tpl->set('pr', $perso->getPr());
         $tpl->set('prmax', $perso->getPrMax());
         $tpl->set('membre', $account->getMemberLevelTxt() . '<br />reste: ' . $account->getMemberRestant() . " jour(s)");
         $tpl->set('MP_LVL', $account->getMemberLevel());
         $tpl->set('actionImmediate', $perso->getCurrentAction());
         if ($perso->isEnergetique()) {
             $tpl->set('PA_COLORCLASS', 'txtStyle_valeur');
         } elseif ($perso->isFaible()) {
             $tpl->set('PA_COLORCLASS', 'txtStyle_risque');
         } else {
             $tpl->set('PA_COLORCLASS', 'txtStyle_critique');
         }
         if ($perso->isAutonome()) {
             $tpl->set('PV_COLORCLASS', 'txtStyle_valeur');
         } elseif ($perso->isConscient()) {
             $tpl->set('PV_COLORCLASS', 'txtStyle_risque');
         } else {
             $tpl->set('PV_COLORCLASS', 'txtStyle_critique');
         }
         if ($perso->isRassasie()) {
             $tpl->set('PN_COLORCLASS', 'txtStyle_valeur');
         } elseif ($perso->isFaim()) {
             $tpl->set('PN_COLORCLASS', 'txtStyle_critique');
         } else {
             $tpl->set('PN_COLORCLASS', 'txtStyle_risque');
         }
         if ($perso->isLege()) {
             $tpl->set('PR_COLORCLASS', 'txtStyle_valeur');
         } else {
             $tpl->set('PR_COLORCLASS', 'txtStyle_risque');
         }
         $tpl->set('PERSO', $perso);
         if ($account->getMemberLevel() != 3) {
             $tpl->set('SHOW_PUB', true);
         }
     } catch (Exception $e) {
         //throw $e;
         return fctErrorMSG('Votre personnage ' . $perso->getNom() . ' est dans un lieu qui semble ne pas exister (' . $e->getMessage() . '). Contactez un MJ via le forum.', '?m=News', null, false);
     }
     //Préparer le menu d'action
     $tpl->set('MENU_ITEMS', $perso->generateActionMenu());
     $code = $tpl->fetch($account->getSkinRemotePhysicalPath() . '/html/Member/menu_actions.htm');
     $tpl->set('PAGE_MENU_ACTIONS', $code);
     //Préparer le he [Entête]
     //$he = new Member_He($account, $perso);
     $from = isset($_GET['hepage']) ? $_GET['hepage'] : 1;
     $tpl->set('HE_PAGE', $from);
     $tpl->set('HE_SIZE', $perso->getHeMsgCount());
     $tpl->set('HE_MAXSPACE', Member_He::spacePerMembership($account->getMemberLevel()));
     $tpl->set('MP', $account->getMemberLevel());
     $tpl->set('HE_MSGPERPAGE', $account->getMsgPerPage());
     $code = $tpl->fetch($account->getSkinRemotePhysicalPath() . '/html/Member/he_header.htm');
     $tpl->set('PAGE_HE_HEADER', $code);
     //Préparer le he [Liste des messages]
     $mpp = $account->getMsgPerPage();
     $heMsg = Member_He::listMessages($perso, ($from - 1) * $mpp, $mpp);
     $code = '';
     $i = $account->getMsgPerPage() + 1;
     foreach ($heMsg as $msg) {
         $tpl->set('MSG', $msg);
         $tpl->set('ITEM_NO_ON_PAGE', --$i);
         $code .= $tpl->fetch($account->getSkinRemotePhysicalPath() . '/html/Member/he_item.htm');
     }
     $tpl->set('PAGE_HE_MESSAGES', $code);
     //Changement de l'action immédiate
     if (isset($_POST['saveActionImmediate'])) {
         $perso->setCurrentAction($_POST['actionImmediate']);
         $tpl->set('actionImmediate', $_POST['actionImmediate']);
     }
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/index.htm', __FILE__, __LINE__);
 }
Esempio n. 10
0
 /** Retourne le prix d'achat de l'item en inventaire dans la boutique
  * <br> (retourne NULL si l'item n'est pas dans une boutique)
  * @param bool $format Formater ou non le nombre (Défaut= non, true=avec devise, false=false devise)
  * @return float
  */
 public function getBoutiquePrixAchat($format = false)
 {
     if ($format === false) {
         return $this->boutiquePrixAchat;
     }
     return fctCreditFormat($this->boutiquePrixAchat, $format);
 }
Esempio n. 11
0
 public static function generatePage(&$tpl, &$session, &$account, &$perso)
 {
     $dbMgr = DbManager::getInstance();
     //Instancier le gestionnaire
     $db = $dbMgr->getConn('game');
     //Demander la connexion existante
     $tarifs = array(0 => 0, 1 => array(6 => 2.0, 12 => 3.0), 2 => array(6 => 8.0, 12 => 12.0), 3 => array(6 => 16.0, 12 => 24.0));
     if (!isset($_POST['userId'])) {
         return fctErrorMSG("Aucun utilisateur spéficié.");
     }
     $userId = (int) $_POST['userId'];
     //Trouver les informations concernant l'abonnement MP
     $query = 'SELECT id, user, mp, mp_expiration' . ' FROM ' . DB_PREFIX . 'account' . ' WHERE id=:userId' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':userId', $userId, PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     $expir = $arr['mp_expiration'];
     $lvl = $arr['mp'];
     $tpl->set('MP_LVL', $lvl);
     $tpl->set('MP_TXT', Account::convMemberLevelTxt($lvl));
     $tpl->set('ACCOUNT_ID', $arr['id']);
     $tpl->set('ACCOUNT_USER', $arr['user']);
     //Créer le tableaux des possibilités d'abonnements
     $abo = array();
     if ($lvl == 0) {
         $abo[count($abo)] = array('cat' => "Niveau I", 'txt' => "Nouvel abonnement MP-1, 6 mois", 'code' => 'abo11', 'prix' => fctCreditFormat(round($tarifs[1][6], 2)));
         $abo[count($abo)] = array('cat' => "Niveau I", 'txt' => "Nouvel abonnement MP-1, 12 mois", 'code' => 'abo12', 'prix' => fctCreditFormat(round($tarifs[1][12], 2)));
         $abo[count($abo)] = array('cat' => "Niveau II", 'txt' => "Nouvel abonnement MP-2, 6 mois", 'code' => 'abo21', 'prix' => fctCreditFormat(round($tarifs[2][6], 2)));
         $abo[count($abo)] = array('cat' => "Niveau II", 'txt' => "Nouvel abonnement MP-2, 12 mois", 'code' => 'abo22', 'prix' => fctCreditFormat(round($tarifs[2][12], 2)));
         $abo[count($abo)] = array('cat' => "Niveau III", 'txt' => "Nouvel abonnement MP-3, 6 mois", 'code' => 'abo31', 'prix' => fctCreditFormat(round($tarifs[3][6], 2)));
         $abo[count($abo)] = array('cat' => "Niveau III", 'txt' => "Nouvel abonnement MP-3, 12 mois", 'code' => 'abo32', 'prix' => fctCreditFormat(round($tarifs[3][12], 2)));
     } else {
         //Déterminer le temps restant à l'abonnement actuel
         $joursRestant = floor(($expir - time()) / (60 * 60 * 24));
         //Calculer les mises à niveau
         if ($lvl == 1) {
             $abo[count($abo)] = array('cat' => "Mise à niveau II", 'txt' => "Mise à niveau du temps restant ({$joursRestant} jours) vers MP-2", 'code' => 'upg12', 'prix' => fctCreditFormat(round($joursRestant / 365 * ($tarifs[2][12] - $tarifs[1][12]) * 1.1, 2)));
             $abo[count($abo)] = array('cat' => "Mise à niveau III", 'txt' => "Mise à niveau du temps restant ({$joursRestant} jours) vers MP-3", 'code' => 'upg13', 'prix' => fctCreditFormat(round($joursRestant / 365 * ($tarifs[3][12] - $tarifs[1][12]) * 1.1, 2)));
         }
         if ($lvl == 2) {
             $abo[count($abo)] = array('cat' => "Mise à niveau III", 'txt' => "Mise à niveau du temps restant ({$joursRestant} jours) vers MP-3", 'code' => 'upg23', 'prix' => fctCreditFormat(round($joursRestant / 365 * ($tarifs[3][12] - $tarifs[2][12]) * 1.1, 2)));
         }
         //Calculer les extentions d'abonnement
         if ($lvl == 1) {
             $abo[count($abo)] = array('cat' => "Extension I", 'txt' => "Extension MP-1, 6 mois", 'code' => 'ext11', 'prix' => fctCreditFormat(round($tarifs[1][6], 2)));
             $abo[count($abo)] = array('cat' => "Extension I", 'txt' => "Extension MP-1, 12 mois", 'code' => 'ext12', 'prix' => fctCreditFormat(round($tarifs[1][12], 2)));
         }
         if ($lvl == 2) {
             $abo[count($abo)] = array('cat' => "Extension II", 'txt' => "Extension MP-2, 6 mois", 'code' => 'ext21', 'prix' => fctCreditFormat(round($tarifs[2][6], 2)));
             $abo[count($abo)] = array('cat' => "Extension II", 'txt' => "Extension MP-2, 12 mois", 'code' => 'ext22', 'prix' => fctCreditFormat(round($tarifs[2][12], 2)));
         }
         if ($lvl == 3) {
             $abo[count($abo)] = array('cat' => "Extension III", 'txt' => "Extension MP-3, 6 mois", 'code' => 'ext31', 'prix' => fctCreditFormat(round($tarifs[3][6], 2)));
             $abo[count($abo)] = array('cat' => "Extension III", 'txt' => "Extension MP-3, 12 mois", 'code' => 'ext32', 'prix' => fctCreditFormat(round($tarifs[3][12], 2)));
         }
     }
     $tpl->set('SITE_VIRTUAL_PATH', SITE_VIRTUAL_PATH);
     $tpl->set('ABO', $abo);
     //Retourner le template complété/rempli
     return $tpl->fetch($account->getSkinRemotePhysicalPath() . 'html/Member/Mp/abo2.htm', __FILE__, __LINE__);
 }
Esempio n. 12
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()) {
         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;
     }
 }
Esempio n. 13
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_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;
     }
 }
Esempio n. 14
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__);
 }
Esempio n. 15
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__);
 }