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) { $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()); }
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'; $errorUrl3 = '?popup=1&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; } }
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'; $errorUrl3 = '?popup=1&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__); }
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('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__); }