Exemplo n.º 1
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;
 }