OSDN Git Service

fix: CSとBSを合計するとチューナー数以上の重複予約が出来てしまうバグを修正
authorSushi-k <epgrec@park.mda.or.jp>
Tue, 2 Mar 2010 08:42:30 +0000 (17:42 +0900)
committerSushi-k <epgrec@park.mda.or.jp>
Tue, 2 Mar 2010 08:42:30 +0000 (17:42 +0900)
Reservation.class.php

index f01f31e..ddb24fe 100755 (executable)
@@ -78,8 +78,10 @@ class Reservation {
                        
                        // 既存予約数 = TUNER番号
                        $tuners = ($crec->type == "GR") ? $settings->gr_tuners : $settings->bs_tuners;
+                       $type_str = ($crec->type == "GR") ? "type = 'GR' " : "(type = 'BS' OR type = 'CS') ";
+                       
                        $battings = DBRecord::countRecords( RESERVE_TBL, "WHERE complete = '0' ".
-                                                                                                                         "AND type = '".$crec->type."' ".
+                                                                                                                         "AND ".$type_str.
                                                                                                                          "AND starttime < '".toDatetime($end_time) ."' ".
                                                                                                                          "AND endtime > '".toDatetime($rec_start)."'"
                        );
@@ -90,11 +92,11 @@ class Reservation {
                                        // 解消可能な重複かどうかを調べる
                                        // 前後の予約数
                                        $nexts = DBRecord::countRecords( RESERVE_TBL, "WHERE complete = '0' ".
-                                                                                                                                       "AND type = '".$crec->type."' ".
+                                                                                                                                       "AND ".$type_str.
                                                                                                                                        "AND starttime = '".toDatetime($end_time - $settings->former_time)."'");
                                        
                                        $prevs = DBRecord::countRecords( RESERVE_TBL, "WHERE complete = '0' ".
-                                                                                                                               "AND type = '".$crec->type."' ".
+                                                                                                                               "AND ".$type_str.
                                                                                                                                "AND endtime = '".$starttime."'"  );
                                        
                                        // 前後を引いてもチューナー数と同数以上なら重複の解消は無理
@@ -111,7 +113,7 @@ class Reservation {
                                        
                                        // 直前の録画予約を見付ける
                                        $trecs = DBRecord::createRecords(RESERVE_TBL, "WHERE complete = '0' ".
-                                                                                                                                                "AND type = '".$crec->type."' ".
+                                                                                                                                                "AND ".$type_str.
                                                                                                                                                 "AND endtime = '".$starttime."'" );
                                        // 直前の番組をずらす
                                        for( $i = 0; $i < count($trecs) ; $i++ ) {
@@ -182,7 +184,7 @@ class Reservation {
                        %TITLE% 番組タイトル
                        %ST%    開始日時(ex.200907201830)
                        %ET%    終了日時
-                       %TYPE%  GR/BS
+                       %TYPE%  GR/BS/CS
                        %CH%    チャンネル番号
                        %DOW%   曜日(Sun-Mon)
                        %DOWJ%  曜日(日-土)