Site Status and Room numbers implemented
This commit is contained in:
59
application/classes/Model/Rooms.php
Normal file
59
application/classes/Model/Rooms.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php defined('SYSPATH') or die('No direct access allowed.');
|
||||
|
||||
/**
|
||||
* This class supports Company Rooms
|
||||
*
|
||||
* @package Membership Database
|
||||
* @category Models
|
||||
* @author Deon George
|
||||
* @copyright (c) 2014 Deon George
|
||||
* @license http://dev.leenooks.net/license.html
|
||||
*/
|
||||
class Model_Rooms extends ORM {
|
||||
protected $_has_many = array(
|
||||
'dates'=>array('model'=>'Room_Dates','far_key'=>'id','foreign_key'=>'room_id'),
|
||||
);
|
||||
|
||||
public function room_dates(Model_Setup $so,$date,$days=0) {
|
||||
$result = array();
|
||||
|
||||
$date_end = $date+$days*86400;
|
||||
$open_dates = $so->open_dates($date,$days);
|
||||
foreach ($this->dates->where('code','=','A')->where_startstop($date,$date_end)->find_all() as $o) {
|
||||
$x = $date;
|
||||
|
||||
while ($x<$date_end) {
|
||||
// If we havent made the start date yet, we need to advance
|
||||
if (! $open_dates[$x]
|
||||
OR ($o->date_start > $x AND (is_null($o->date_stop) OR $o->date_stop > $date_end))
|
||||
OR ((is_null($o->date_start) OR $o->date_start > $x) AND $o->date_stop > $date_end)
|
||||
OR (! is_null($o->date_start) AND ! is_null($o->date_stop))) {
|
||||
|
||||
if (! isset($result[$x]) OR ! $result[$x])
|
||||
$result[$x] = 0;
|
||||
|
||||
$x += 86400;
|
||||
continue;
|
||||
}
|
||||
|
||||
// Check that this record covers our current date
|
||||
if ($o->date_stop < $x AND ! is_null($o->date_stop))
|
||||
break;
|
||||
|
||||
$result[$x] = $o->avail(date('w',$x));
|
||||
$x += 86400;
|
||||
}
|
||||
}
|
||||
|
||||
// If we broke out and our date $days hasnt ben evaluated, we are closed
|
||||
while ($x<$date_end) {
|
||||
if (! isset($result[$x]) OR ! $result[$x])
|
||||
$result[$x] = 0;
|
||||
|
||||
$x += 86400;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user