Exemple #1
0
 /**
  * Sauvegarde ou met a jour le personnage passé.
  * @param \Commun\Model\Raids $oRaids
  * @return  \Core\Model\Raids
  */
 public function saveOrUpdateRaid($oRaids)
 {
     try {
         //recherche si le raid existe
         /* @var $oTabRaid \Commun\Model\Raids */
         $oTabRaid = $this->selectBy(array("idRaid" => $oRaids->getIdRaid()));
         if (!$oTabRaid) {
             $oTabRaid = $this->selectBy(array("date" => $oRaids->getDate()));
         }
     } catch (\Exception $exc) {
         throw new DatabaseException(4000, 4, $this->_getServiceLocator(), $oRaids->getArrayCopy(), $exc);
     }
     // si n'existe pas on insert
     if (!$oTabRaid) {
         try {
             $this->insert($oRaids);
             $oRaids->setIdRaid($this->lastInsertValue);
         } catch (\Exception $exc) {
             throw new DatabaseException(4000, 2, $this->_getServiceLocator(), $oRaids->getArrayCopy(), $exc);
         }
     } else {
         try {
             // sinon on update
             $oRaids->setIdRaid($oTabRaid->getIdRaid());
             $oRaids->setMajPar("Import Raid-TracKer");
             $this->update($oRaids);
         } catch (\Exception $exc) {
             throw new DatabaseException(4000, 1, $this->_getServiceLocator(), $oRaids->getArrayCopy(), $exc);
         }
     }
     return $oRaids;
 }
 /**
  * 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);
     }
 }
 /**
  * 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);
     }
 }