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	//BUT: Démarrer un template propre à cette page
     $coutPa = 1;
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         die('00|Votre n\'êtes pas en état d\'effectuer cette action.');
     }
     //Vérifier les PA du perso
     if ($perso->getPa() <= $coutPa) {
         die('01|Vous n\'avez pas assez de PA pour 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_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si la banque existe
     if ($arr === false) {
         die('02|Cette banque n\'existe pas (' . $perso->getLieu()->getNomTech() . ').');
     }
     //Intancier le compte bancaire
     $banque = new Member_Banque($arr);
     //Rechercher le compte
     $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['id'], PDO::PARAM_INT);
     $prep->bindValue(':persoId', $perso->getId(), PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider le compte
     if ($arr === false) {
         die('03|Ce compte n\'existe pas (' . $_POST['id'] . ').');
     }
     //Instancier le compte
     $compte = $banque->getCompte($arr['compte_compte'], $arr);
     //Valider si le montant est possible
     $montant = str_replace(',', '.', $_POST['montant']);
     if ($montant <= 0 || $montant > $perso->getCash()) {
         die('04|Vous ne pouvez pas déposer plus que vous avez ou un montant vide.');
     }
     //Effectuer le transfert d'argent
     $perso->changeCash('-', $montant);
     $perso->setCash();
     $compte->changeCash('+', $montant);
     $compte->setCash();
     //Retirer les PA
     $perso->changePa('-', $coutPa);
     $perso->setPa();
     //Ajouter la transaction à l'historique
     $compte->add_bq_hist('', 'DPOT', 0, $montant);
     $compteCash = $compte->getCash() == -1 ? 'illimité' : $compte->getCash();
     //Confirmer les modifications avec les informations sur les changements
     die($_POST['id'] . '|OK|' . $compteCash . '|' . $perso->getCash() . '|' . $perso->getPa());
 }
Exemple #2
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;
     //Vérifier l'état du perso
     if (!$perso->isAutonome()) {
         die('00|Votre n\'êtes pas en état d\'effectuer cette action.');
     }
     //Vérifier les PA du perso
     if ($perso->getPa() <= $coutPa) {
         die('01|Vous n\'avez pas assez de PA pour effectuer cette action.');
     }
     if (!isset($_POST['compte']) || !isset($_POST['id'])) {
         return fctErrorMSG('Veuillez passer par le formulaire.');
     }
     $occ = preg_match('/([0-9]{4})-([0-9]{4})-([0-9]{4})-([0-9]{4})/', $_POST['compte']);
     if ($occ == 0) {
         return fctErrorMSG('Le # de compte doit être au format XXXX-XXXX-XXXX-XXXX.', $errorUrl);
     }
     //Instancier 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->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     if ($arr === false) {
         die('02|Cette banque n\'existe pas (' . $perso->getLieu()->getNomTech() . ').');
     }
     $banque = new Member_Banque($arr);
     //Rechercher le compte
     $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['id'], 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) {
         die('03|Ce compte n\'existe pas (' . $_POST['id'] . ').');
     }
     //Instancier le compte
     $compte = $banque->getCompte($arr['compte_compte'], $arr);
     //Rechercher le compte distant (celui vers lequel faire le transfert)
     $cptno = explode('-', $_POST['compte']);
     $query = 'SELECT *' . ' FROM ' . DB_PREFIX . 'banque_comptes' . ' WHERE	compte_banque=:banque' . ' AND compte_compte=:compte' . ' LIMIT 1;';
     $prep = $db->prepare($query);
     $prep->bindValue(':banque', $cptno[0], PDO::PARAM_INT);
     $prep->bindValue(':compte', $cptno[1] . '-' . $cptno[2] . '-' . $cptno[3], PDO::PARAM_INT);
     $prep->executePlus($db, __FILE__, __LINE__);
     $arr = $prep->fetch();
     $prep->closeCursor();
     $prep = NULL;
     //Valider si le compte a été trouvé
     if ($arr === false) {
         die('03|Ce compte n\'existe pas (' . $_POST['compte'] . ').');
     }
     //Instancier le compte distant (celui vers lequel faire le transfert)
     $compte2 = $banque->getCompte($arr['compte_compte'], $arr);
     //Valider si le montant est possible
     $_POST['montant'] = str_replace(',', '.', $_POST['montant']);
     if ($_POST['montant'] <= 0 || $_POST['montant'] > $compte->getCash() && $compte->getCash() != -1) {
         die('04|Vous ne pouvez pas retirer plus que vous avez ou un montant vide.');
     }
     //Effectuer le transfert d'argent
     $compte->changeCash('-', $_POST['montant']);
     $compte->setCash();
     $compte2->changeCash('+', $_POST['montant']);
     $compte2->setCash();
     //Retirer les PA
     $perso->changePa('-', $coutPa);
     $perso->setPa();
     //Ajouter la transaction à l'historique
     $compte->add_bq_hist($compte2->getNoBanque() . '-' . $compte2->getNoCompte(), 'STRF', $_POST['montant'], 0);
     $compte2->add_bq_hist($compte->getNoBanque() . '-' . $compte->getNoCompte(), 'RTRF', 0, $_POST['montant']);
     $compteCash = $compte->getCash() == -1 ? 'illimité' : $compte->getCash();
     //Confirmer les modifications avec les informations sur les changements
     die($_POST['id'] . '|OK|' . $compteCash . '|' . $perso->getCash() . '|' . $perso->getPa());
 }
Exemple #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&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 #4
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;
 }