CC-5122: Calendar -> linked show: Change the repeating weekday will lost all the contents
This commit is contained in:
parent
f5fa033207
commit
13458ad687
|
@ -145,9 +145,8 @@ class Application_Service_SchedulerService
|
||||||
return $dt;
|
return $dt;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function fillLinkedShows($ccShow)
|
public static function fillNewLinkedInstances($ccShow)
|
||||||
{
|
{
|
||||||
if ($ccShow->isLinked()) {
|
|
||||||
/* First check if any linked instances have content
|
/* First check if any linked instances have content
|
||||||
* If all instances are empty then we don't need to fill
|
* If all instances are empty then we don't need to fill
|
||||||
* any other instances with content
|
* any other instances with content
|
||||||
|
@ -178,7 +177,9 @@ class Application_Service_SchedulerService
|
||||||
* the first instance, we cant to fill/replace with the show stamp
|
* the first instance, we cant to fill/replace with the show stamp
|
||||||
* (The show stamp is taken from the first show instance's content)
|
* (The show stamp is taken from the first show instance's content)
|
||||||
*/
|
*/
|
||||||
if ($ccSchedules->isEmpty() || self::replaceInstanceContentCheck($ccShowInstance, $showStamp)) {
|
if ($ccSchedules->isEmpty() ||
|
||||||
|
self::replaceInstanceContentCheck($ccShowInstance, $showStamp)) {
|
||||||
|
|
||||||
$nextStartDT = $ccShowInstance->getDbStarts(null);
|
$nextStartDT = $ccShowInstance->getDbStarts(null);
|
||||||
|
|
||||||
foreach ($showStamp as $item) {
|
foreach ($showStamp as $item) {
|
||||||
|
@ -211,6 +212,48 @@ class Application_Service_SchedulerService
|
||||||
} //foreach linked instance
|
} //foreach linked instance
|
||||||
} //if at least one linked instance has content
|
} //if at least one linked instance has content
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function fillPreservedLinkedShowContent($ccShow, $showStamp)
|
||||||
|
{
|
||||||
|
$item = $showStamp->getFirst();
|
||||||
|
$timeFilled = $item->getCcShowInstances()->getDbTimeFilled();
|
||||||
|
|
||||||
|
foreach ($ccShow->getCcShowInstancess() as $ccShowInstance) {
|
||||||
|
$ccSchedules = CcScheduleQuery::create()
|
||||||
|
->filterByDbInstanceId($ccShowInstance->getDbId())
|
||||||
|
->find();
|
||||||
|
|
||||||
|
if ($ccSchedules->isEmpty()) {
|
||||||
|
|
||||||
|
$nextStartDT = $ccShowInstance->getDbStarts(null);
|
||||||
|
|
||||||
|
foreach ($showStamp as $item) {
|
||||||
|
$endTimeDT = self::findEndTime($nextStartDT, $item->getDbClipLength());
|
||||||
|
|
||||||
|
$ccSchedule = new CcSchedule();
|
||||||
|
$ccSchedule
|
||||||
|
->setDbStarts($nextStartDT)
|
||||||
|
->setDbEnds($endTimeDT)
|
||||||
|
->setDbFileId($item->getDbFileId())
|
||||||
|
->setDbStreamId($item->getDbStreamId())
|
||||||
|
->setDbClipLength($item->getDbClipLength())
|
||||||
|
->setDbFadeIn($item->getDbFadeIn())
|
||||||
|
->setDbFadeOut($item->getDbFadeOut())
|
||||||
|
->setDbCuein($item->getDbCueIn())
|
||||||
|
->setDbCueOut($item->getDbCueOut())
|
||||||
|
->setDbInstanceId($ccShowInstance->getDbId())
|
||||||
|
->setDbPosition($item->getDbPosition())
|
||||||
|
->save();
|
||||||
|
|
||||||
|
$nextStartDT = $endTimeDT;
|
||||||
|
} //foreach show item
|
||||||
|
|
||||||
|
$ccShowInstance
|
||||||
|
->setDbTimeFilled($timeFilled)
|
||||||
|
->setDbLastScheduled(gmdate("Y-m-d H:i:s"))
|
||||||
|
->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function replaceInstanceContentCheck($ccShowInstance, $showStamp)
|
private static function replaceInstanceContentCheck($ccShowInstance, $showStamp)
|
||||||
|
|
|
@ -13,6 +13,7 @@ class Application_Service_ShowService
|
||||||
private $isRebroadcast;
|
private $isRebroadcast;
|
||||||
private $repeatType;
|
private $repeatType;
|
||||||
private $isUpdate;
|
private $isUpdate;
|
||||||
|
private $linkedShowContent;
|
||||||
|
|
||||||
public function __construct($showId=null, $showData=null, $isUpdate=false)
|
public function __construct($showId=null, $showData=null, $isUpdate=false)
|
||||||
{
|
{
|
||||||
|
@ -217,10 +218,16 @@ class Application_Service_ShowService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($this->ccShow) && ($this->isUpdate || $fillInstances)) {
|
if (isset($this->ccShow) && ($this->isUpdate || $fillInstances) &&
|
||||||
Application_Service_SchedulerService::fillLinkedShows(
|
$this->ccShow->isLinked()) {
|
||||||
$this->ccShow);
|
Application_Service_SchedulerService::fillNewLinkedInstances($this->ccShow);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (isset($this->linkedShowContent)) {
|
||||||
|
Application_Service_SchedulerService::fillPreservedLinkedShowContent(
|
||||||
|
$this->ccShow, $this->linkedShowContent);
|
||||||
|
}
|
||||||
|
|
||||||
return $this->ccShow;
|
return $this->ccShow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -379,6 +386,9 @@ SQL;
|
||||||
if (count($daysRemoved) > 0) {
|
if (count($daysRemoved) > 0) {
|
||||||
//delete repeating show instances for the repeating
|
//delete repeating show instances for the repeating
|
||||||
//days that were removed
|
//days that were removed
|
||||||
|
if ($this->ccShow->isLinked()) {
|
||||||
|
$this->preserveLinkedShowContent();
|
||||||
|
}
|
||||||
$this->deleteRemovedShowDayInstances($daysRemoved,
|
$this->deleteRemovedShowDayInstances($daysRemoved,
|
||||||
$ccShowDays, $showId);
|
$ccShowDays, $showId);
|
||||||
}
|
}
|
||||||
|
@ -423,6 +433,22 @@ SQL;
|
||||||
return $daysAdded;
|
return $daysAdded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function preserveLinkedShowContent()
|
||||||
|
{
|
||||||
|
/* Get show content from any linekd instance. It doesn't
|
||||||
|
* matter which instance since content is the same in all.
|
||||||
|
*/
|
||||||
|
$ccShowInstance = $this->ccShow->getCcShowInstancess()->getFirst();
|
||||||
|
|
||||||
|
$ccSchedules = CcScheduleQuery::create()
|
||||||
|
->filterByDbInstanceId($ccShowInstance->getDbId())
|
||||||
|
->find();
|
||||||
|
|
||||||
|
if (!$ccSchedules->isEmpty()) {
|
||||||
|
$this->linkedShowContent = $ccSchedules;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function getRepeatingEndDate()
|
public function getRepeatingEndDate()
|
||||||
{
|
{
|
||||||
$sql = <<<SQL
|
$sql = <<<SQL
|
||||||
|
|
Loading…
Reference in New Issue