예제 #1
0
 /**
  * Sauvegarde ou met a jour le personnage et le raid passé.
  * @param \Commun\Model\Personnages $oPersonnage
  * @param \Commun\Model\Raids $oRaids
  * @return  \Core\Model\RaidPersonnage
  */
 public function saveOrUpdateRaid($oPersonnage, $oRaids)
 {
     try {
         //recherche si le raid existe
         /* @var $oTab \Commun\Model\Raids */
         $oTab = $this->selectBy(array("idPersonnage" => $oPersonnage->getIdPersonnage(), "idRaid" => $oRaids->getIdRaid()));
         $oRaidPersonnage = new \Commun\Model\RaidPersonnage();
         // coder au cas ou on rajoute d'autre info dans la table
         // si n'existe pas on insert
         if (!$oTab) {
             $oRaidPersonnage->setIdPersonnage($oPersonnage->getIdPersonnage());
             $oRaidPersonnage->setIdRaid($oRaids->getIdRaid());
             $this->insert($oRaidPersonnage);
             return $oRaidPersonnage;
         }
         // ne fonctionne pas car mon abstractTable ne gère pas les multi clé
         //        else {
         //            // sinon on update
         //            $oTab->setIdPersonnage($oPersonnage->getIdPersonnage());
         //            $oTab->setIdRaid($oRaids->getIdRaid());
         //            $this->update($oTab);
         //        }
         return $oTab;
     } catch (Exception $exc) {
         throw new \Exception("Erreur lors de la sauvegarde /maj du lien raid/personnage", 0, $ex);
     }
 }
예제 #2
0
 /**
  * Sauvegarde ou met a jour le personnage passé.
  * @param \Commun\Model\Personnages $oPersonnage
  * @param \Commun\Model\Guildes $oGuilde
  * @return  \Core\Model\Personnages
  */
 public function saveOrUpdatePersonnage($oPersonnage, $oGuilde = null)
 {
     try {
         $oPersonnage->setNom(strtolower($oPersonnage->getNom()));
         $oPersonnage->setRoyaume(strtolower($oPersonnage->getRoyaume()));
         //recherche si le personnage existe
         try {
             $oTabPersonnage = $this->selectBy(array("idPersonnage" => $oPersonnage->getIdPersonnage()));
             if (!$oTabPersonnage) {
                 $oTabPersonnage = $this->selectBy(array("nom" => $oPersonnage->getNom(), "royaume" => $oPersonnage->getRoyaume(), "idFaction" => $oPersonnage->getIdFaction()));
             }
         } catch (\Exception $exc) {
             throw new DatabaseException(2000, 4, $this->_getServiceLocator(), $oPersonnage->getArrayCopy(), $exc, $oPersonnage->getArrayCopy());
         }
         // si n'existe pas on insert
         if (!$oTabPersonnage) {
             try {
                 if (!empty($oGuilde)) {
                     $oPersonnage->setIdGuildes($oGuilde->getIdGuildes());
                     $oPersonnage->setIdFaction($oGuilde->getIdFaction());
                 }
                 $this->insert($oPersonnage);
                 $oPersonnage->setIdPersonnage($this->lastInsertValue);
             } catch (\Exception $exc) {
                 throw new DatabaseException(2000, 2, $this->_getServiceLocator(), $oPersonnage->getArrayCopy(), $exc, $oPersonnage->getArrayCopy());
             }
         } else {
             try {
                 // sinon on update
                 if (!empty($oGuilde)) {
                     $oPersonnage->setIdGuildes($oGuilde->getIdGuildes());
                     $oPersonnage->setIdFaction($oGuilde->getIdFaction());
                 }
                 $oPersonnage->setIdPersonnage($oTabPersonnage->getIdPersonnage());
                 $this->update($oPersonnage);
             } catch (\Exception $exc) {
                 throw new DatabaseException(2000, 1, $this->_getServiceLocator(), $oPersonnage->getArrayCopy(), $exc, $oPersonnage->getArrayCopy());
             }
         }
         return $oPersonnage;
     } catch (\Exception $ex) {
         throw new \Commun\Exception\LogException("Erreur lors de la sauvegarde du personnage", 0, $this->_getServiceLocator(), $ex, $oPersonnage->getArrayCopy());
     }
 }
 /**
  * Sauvegarde ou met a jour le personnage et le raid passé.
  * @param \Commun\Model\Personnages $oPersonnage
  * @param \Commun\Model\Raids $oRaids
  * @param \Commun\Model\Items $oItems
  * @param string $sNomBoss
  * @param string $sBonus
  * @param string $sNote
  * @param date $dDateLoot date du loot
  * @return  \Core\Model\RaidPersonnage
  */
 public function saveOrUpdateItemPersonnageRaid($oPersonnage, $oRaids, $oItems, $sNomBoss, $sBonus, $sNote, $dDateLoot)
 {
     try {
         $oItemPersonnageRaid = new \Commun\Model\ItemPersonnageRaid();
         $oItemPersonnageRaid->setIdItem($oItems->getIdItem());
         $oItemPersonnageRaid->setIdRaid($oRaids->getIdRaid());
         $oItemPersonnageRaid->setIdPersonnage($oPersonnage->getIdPersonnage());
         $oItemPersonnageRaid->setBonus($sBonus);
         $oItemPersonnageRaid->setDate($dDateLoot);
         $oBoss = $this->_getTableBoss()->selectBy(array('nom' => strtolower($sNomBoss)));
         if (!$oBoss) {
             throw new DatabaseException(9000, 6, $this->_getServiceLocator(), array(strtolower($sNomBoss)));
         }
         $oItemPersonnageRaid->setIdBosses($oBoss->getIdBosses());
         $oItemPersonnageRaid->setNote($sNote);
         $this->insert($oItemPersonnageRaid);
         return $oItemPersonnageRaid;
     } catch (\Exception $ex) {
         throw new DatabaseException(8000, 2, $this->_getServiceLocator(), array($oPersonnage, $oRaids, $oItems, $sNomBoss, $sBonus, $sNote, $dDateLoot), $ex);
     }
 }