can find overlapping shows now for moving.
This commit is contained in:
parent
7b22099f12
commit
b10c2cfe2a
|
@ -14,6 +14,7 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$ajaxContext->addActionContext('event-feed', 'json')
|
$ajaxContext->addActionContext('event-feed', 'json')
|
||||||
->addActionContext('add-show-dialog', 'json')
|
->addActionContext('add-show-dialog', 'json')
|
||||||
->addActionContext('add-show', 'json')
|
->addActionContext('add-show', 'json')
|
||||||
|
->addActionContext('move-show', 'json')
|
||||||
->initContext();
|
->initContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +70,8 @@ class ScheduleController extends Zend_Controller_Action
|
||||||
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
|
||||||
|
|
||||||
$show = new Show($userInfo->type);
|
$show = new Show($userInfo->type);
|
||||||
$show->moveShow($showId, $deltaDay, $deltaMin);
|
|
||||||
|
$this->view->overlap = $show->moveShow($showId, $deltaDay, $deltaMin);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function resizeShowAction()
|
public function resizeShowAction()
|
||||||
|
|
|
@ -113,19 +113,31 @@ class Show {
|
||||||
$start = $show["first_show"];
|
$start = $show["first_show"];
|
||||||
$end = $show["last_show"];
|
$end = $show["last_show"];
|
||||||
$days = array();
|
$days = array();
|
||||||
$s_time = $show["start_time"];
|
|
||||||
$e_time = $show["end_time"];
|
$hours = $deltaMin/60;
|
||||||
|
if($hours > 0)
|
||||||
|
$hours = floor($hours);
|
||||||
|
else
|
||||||
|
$hours = ceil($hours);
|
||||||
|
|
||||||
|
$mins = abs($deltaMin%60);
|
||||||
|
|
||||||
|
$sql = "SELECT time '{$show["start_time"]}' + interval '{$hours}:{$mins}'";
|
||||||
|
//echo $sql;
|
||||||
|
$s_time = $CC_DBC->GetOne($sql);
|
||||||
|
|
||||||
|
$sql = "SELECT time '{$show["end_time"]}' + interval '{$hours}:{$mins}'";
|
||||||
|
//echo $sql;
|
||||||
|
$e_time = $CC_DBC->GetOne($sql);
|
||||||
|
|
||||||
foreach($res as $show) {
|
foreach($res as $show) {
|
||||||
$days[] = $show["day"] + $deltaDay;
|
$days[] = $show["day"] + $deltaDay;
|
||||||
}
|
}
|
||||||
|
|
||||||
$shows_overlap = $this->getShows($start, $end, $days, $s_time, $e_time);
|
return $this->getShows($start, $end, $days, $s_time, $e_time, array($showId));
|
||||||
|
|
||||||
echo $shows_overlap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getShows($start=NULL, $end=NULL, $days=NULL, $s_time=NULL, $e_time=NULL) {
|
public function getShows($start=NULL, $end=NULL, $days=NULL, $s_time=NULL, $e_time=NULL, $exclude_shows=NULL) {
|
||||||
global $CC_DBC;
|
global $CC_DBC;
|
||||||
|
|
||||||
$sql;
|
$sql;
|
||||||
|
@ -149,7 +161,7 @@ class Show {
|
||||||
}
|
}
|
||||||
$sql_day = join(" OR ", $sql_opt);
|
$sql_day = join(" OR ", $sql_opt);
|
||||||
|
|
||||||
$sql = $sql_gen ." WHERE (". $sql_day ." AND (". $sql_range ."))";
|
$sql = $sql_gen ." WHERE ((". $sql_day .") AND (". $sql_range ."))";
|
||||||
}
|
}
|
||||||
if(!is_null($s_time) && !is_null($e_time)) {
|
if(!is_null($s_time) && !is_null($e_time)) {
|
||||||
$sql_time = "(start_time <= '{$s_time}' AND end_time >= '{$e_time}')
|
$sql_time = "(start_time <= '{$s_time}' AND end_time >= '{$e_time}')
|
||||||
|
@ -157,12 +169,22 @@ class Show {
|
||||||
OR (end_time > '{$s_time}' AND end_time <= '{$e_time}')
|
OR (end_time > '{$s_time}' AND end_time <= '{$e_time}')
|
||||||
OR (start_time >= '{$s_time}' AND start_time < '{$e_time}')";
|
OR (start_time >= '{$s_time}' AND start_time < '{$e_time}')";
|
||||||
|
|
||||||
$sql = $sql_gen ." WHERE (". $sql_day ." AND (". $sql_range .") AND (". $sql_time ."))";
|
$sql = $sql_gen ." WHERE ((". $sql_day .") AND (". $sql_range .") AND (". $sql_time ."))";
|
||||||
|
}
|
||||||
|
if(!is_null($exclude_shows)){
|
||||||
|
|
||||||
|
$sql_opt = array();
|
||||||
|
foreach ($exclude_shows as $showid) {
|
||||||
|
$sql_opt[] = "show_id = {$showid}";
|
||||||
|
}
|
||||||
|
$sql_showid = join(" OR ", $sql_opt);
|
||||||
|
|
||||||
|
$sql = $sql_gen ." WHERE ((". $sql_day .") AND NOT (". $sql_showid .") AND (". $sql_range .") AND (". $sql_time ."))";
|
||||||
}
|
}
|
||||||
|
|
||||||
//echo $sql;
|
//echo $sql;
|
||||||
|
|
||||||
return $CC_DBC->GetAll($sql);
|
return $CC_DBC->GetAll($sql);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getFullCalendarEvents($start, $end, $weekday=NULL) {
|
public function getFullCalendarEvents($start, $end, $weekday=NULL) {
|
||||||
|
|
Loading…
Reference in New Issue