CC-3035 : Should be able to resize a show, have it affect all future instances of the show

added a new resize function to Shows.php,
should not use ShowInstance resize method, since you cannot resize just one instance currently.
This commit is contained in:
Naomi Aro 2011-11-16 16:32:04 +01:00
parent 129feb573b
commit 12172e5ad5
4 changed files with 42 additions and 8 deletions

View File

@ -110,14 +110,14 @@ class ScheduleController extends Zend_Controller_Action
{
$deltaDay = $this->_getParam('day');
$deltaMin = $this->_getParam('min');
$showInstanceId = $this->_getParam('showInstanceId');
$showId = $this->_getParam('showId');
$userInfo = Zend_Auth::getInstance()->getStorage()->read();
$user = new Application_Model_User($userInfo->id);
if ($user->isUserType(array(UTYPE_ADMIN, UTYPE_PROGRAM_MANAGER))) {
try{
$show = new Application_Model_ShowInstance($showInstanceId);
$show = new Application_Model_Show($showId);
}catch(Exception $e){
$this->view->show_error = true;
return false;

View File

@ -105,6 +105,35 @@ class Application_Model_Show {
return $res;
}
public function resizeShow($deltaDay, $deltaMin)
{
global $CC_DBC;
$hours = $deltaMin/60;
if($hours > 0)
$hours = floor($hours);
else
$hours = ceil($hours);
$mins = abs($deltaMin%60);
//current timesamp in UTC.
$current_timestamp = Application_Model_DateHelper::ConvertToUtcDateTime(date("Y-m-d H:i:s"))->format("Y-m-d H:i:s");
//update all cc_show_instances that are in the future.
$sql = "UPDATE cc_show_instances SET ends = (ends + interval '{$deltaDay} days' + interval '{$hours}:{$mins}')
WHERE (show_id = {$this->_showId} AND starts > '$current_timestamp');";
//update cc_show_days so future shows can be created with the new duration.
$sql = $sql . " UPDATE cc_show_days SET duration = (CAST(duration AS interval) + interval '{$deltaDay} days' + interval '{$hours}:{$mins}')
WHERE show_id = {$this->_showId}";
//do both the queries at once.
$CC_DBC->query($sql);
Application_Model_RabbitMq::PushSchedule();
}
public function cancelShow($day_timestamp)
{
global $CC_DBC;

View File

@ -239,6 +239,11 @@ class Application_Model_ShowInstance {
Application_Model_RabbitMq::PushSchedule();
}
/*
* FUNCTION SHOULD NOT BE CALLED
* - we are removing ability to resize just a single show instance
* -please use the resize method on the Show.php class.
*/
public function resizeShow($deltaDay, $deltaMin)
{
global $CC_DBC;

View File

@ -319,7 +319,7 @@ function eventResize( event, dayDelta, minuteDelta, revertFunc, jsEvent, ui, vie
url = '/Schedule/resize-show/format/json';
$.post(url,
{day: dayDelta, min: minuteDelta, showInstanceId: event.id},
{day: dayDelta, min: minuteDelta, showId: event.showId},
function(json){
if(json.show_error == true){
alertShowErrorAndReload();