function calculerDates($annee) { $u = $this->unite; $a = $annee; $fin = strftime('%Y-%m-%d', strtotime(Strass_Controller_Action_Helper_Annee::dateFin($annee) . ' next saturday -4 weeks')); $calendrier = $u->findActivites($a); if ($calendrier->count()) { $debut = substr($calendrier->current()->debut, 0, 10); $min_fin = strftime('%Y-%m-%d', strtotime(Strass_Controller_Action_Helper_Annee::dateFin($annee) . ' next saturday -6 weeks')); $max_fin = strftime('%Y-%m-%d', strtotime(Strass_Controller_Action_Helper_Annee::dateFin($annee) . ' next saturday')); while ($calendrier->valid()) { $fin = substr($calendrier->current()->fin, 0, 10); $calendrier->next(); } if ($min_fin > $fin) { $fin = $min_fin; } if ($max_fin < $fin) { $fin = $max_fin; } } else { $debut = strftime('%Y-%m-%d', strtotime(Strass_Controller_Action_Helper_Annee::dateDebut($annee) . ' next saturday +4 weeks')); } return array($debut, $fin); }
function findByAnnee($annee) { $s = $this->select()->where("? < activite.debut", Strass_Controller_Action_Helper_Annee::dateDebut($annee))->where("activite.fin < ?", Strass_Controller_Action_Helper_Annee::dateFin($annee))->order('activite.debut'); return $this->fetchAll($s); }
function findLastDate($annee) { $t = new Activites(); $db = $t->getAdapter(); $s = $t->select()->from('activite', array('activite.fin'))->join('participation', 'participation.activite = activite.id' . ' AND ' . $db->quoteInto('participation.unite = ?', $this->id), array())->order('activite.fin DESC')->limit(1); if ($annee) { $s->where('? < activite.fin', Strass_Controller_Action_Helper_Annee::dateDebut($annee))->where('activite.fin < ?', strftime('%Y-%m-%d', strtotime(Strass_Controller_Action_Helper_Annee::dateFin($annee) . ' -5 weeks'))); } return $s->query()->fetchColumn(); }