Skip to content
Snippets Groups Projects
Commit 7077d78d authored by llaffont's avatar llaffont
Browse files

Les dates de réservation proposées prennent en compte les délais min/max de réservation

parent 8c8a6b8d
Branches
Tags
No related merge requests found
......@@ -588,7 +588,7 @@ class AbonneController extends Zend_Controller_Action {
$js_opened_days = implode(',', array_map(
function ($day) { return '"'.$day.'"'; },
$location->getOpenedDaysForNextMonths(2)));
$location->getHoldableDays()));
$beforeShowDay = 'var result = [true, \'\'];
......
......@@ -23,16 +23,18 @@ Rajouter erreurs:
**** réservation auto. pas activée et aucune réservation pour l'utilisateur
**** c'est pas l'utilisateur qui a réservé (réservation en cours)
**** poste/device non trouvé
** Réservation d'un poste [0/3]
** Réservation d'un poste [1/3]
[[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::abstract%20class%20AbonneControllerMultimediaAuthenticateTestCase%20extends%20AbstractControllerTestCase%20{][Test controller Abonne]]
*** [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldLocationTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][1er écran choix du lieu]]
*** TODO [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldDayTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][2nd écran choix du jour]] - [[file:application/modules/opac/controllers/AbonneController.php::public%20function%20multimediaHoldDayAction()%20{][action controller]] [0/2]
**** TODO Remplacer le getDays qui retourne la liste des coches par les ouvertures récurentes de la bib cf [[file:application/modules/opac/controllers/AbonneController.php::if%20(-1%20%3D%3D%20$.inArray(date.getDay(),%20%5B'%20.%20$location->getDays()%20.%20'%5D))%20{][$location->getDays()]]
*** TODO [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldDayTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][2nd écran choix du jour]] - [[file:application/modules/opac/controllers/AbonneController.php::public%20function%20multimediaHoldDayAction()%20{][action controller]] [1/2]
**** DONE Remplacer le getDays qui retourne la liste des coches par les ouvertures récurentes de la bib cf [[file:application/modules/opac/controllers/AbonneController.php::if%20(-1%20%3D%3D%20$.inArray(date.getDay(),%20%5B'%20.%20$location->getDays()%20.%20'%5D))%20{][$location->getDays()]]
CLOSED: [2012-08-09 Thu 18:55]
**** TODO Si le bidouilleux mets une date bidon dans l'url, l'écran suivant ne proposera pas d'heure de départ. Donc faire la vérification pour ne pas changer d'écran et afficher message erreur
*** TODO [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldHoursTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][3ème écran choix de l'heure]] [1/1]
*** DONE [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldHoursTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][3ème écran choix de l'heure]] [1/1]
CLOSED: [2012-08-09 Thu 18:55]
**** DONE Brancher getMin/MaxTimeForDate aux ouvertures [[file:application/modules/opac/controllers/AbonneController.php::if%20($start%20<%20$location->getMinTimeForDate($bean->day)][vérification créneau ouverture]]
CLOSED: [2012-08-07 Tue 09:51]
CLOSED: [2012-08-09 Thu 18:55]
*** TODO [[file:tests/application/modules/opac/controllers/AbonneControllerMultimediaTest.php::class%20AbonneControllerMultimediaHoldDeviceTest%20extends%20AbonneControllerMultimediaHoldTestCase%20{][4ème écran choix du poste]] [0/1]
......
......@@ -299,17 +299,28 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
/** @return string formatted date YYYY-MM-DD */
public function getMinDate() {
if (0 == ($delay = $this->getHoldDelayMin()))
return date('Y-m-d');
return date('Y-m-d', strtotime('+' . $delay . ' day'));
return date('Y-m-d', $this->getMinDateTimeStamp());
}
public function getMinDateTimeStamp() {
if (0 == ($delay = $this->getHoldDelayMin()))
return $this->getTimeSource()->time();
return strtotime('+' . $delay . ' day', $this->getTimeSource()->time());
}
/** @return string formatted date YYYY-MM-DD */
public function getMaxDate() {
return date('Y-m-d', $this->getMaxDateTimeStamp());
}
public function getMaxDateTimeStamp() {
if (0 == ($delay = $this->getHoldDelayMax()))
$delay = 365;
return date('Y-m-d', strtotime('+' . $delay . ' day'));
return strtotime('+' . $delay . ' day', $this->getTimeSource()->time());
}
......@@ -324,9 +335,9 @@ class Class_Multimedia_Location extends Storm_Model_Abstract {
/**
* @return array
*/
public function getOpenedDaysForNextMonths($number_of_months) {
$all_days = Class_Date::dateRange($this->getTimeSource()->time(),
$this->getTimeSource()->nextMonths(2));
public function getHoldableDays() {
$all_days = Class_Date::dateRange($this->getMinDateTimeStamp(),
$this->getMaxDateTimeStamp());
return array_values(array_filter($all_days,
function ($day) {
......
......@@ -170,6 +170,7 @@ class Multimedia_LocationWithBibTest extends Storm_Test_ModelTestCase {
/** @test */
public function getDatesOuvertureShouldAnswersAllMercrediJeudiForNextTwoMonthsWith9and19Sept() {
$this->_time_source->setTime(strtotime('2012-08-05'));
$this->_location->setHoldDelayMax(60);
$this->assertEquals(['2012-08-08', '2012-08-09',
'2012-08-15', '2012-08-16',
'2012-08-22', '2012-08-23',
......@@ -180,7 +181,7 @@ class Multimedia_LocationWithBibTest extends Storm_Test_ModelTestCase {
'2012-09-19', '2012-09-20',
'2012-09-26', '2012-09-27',
'2012-10-03', '2012-10-04'],
$this->_location->getOpenedDaysForNextMonths(2));
$this->_location->getHoldableDays());
}
}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment