From: Sushi-k Date: Tue, 2 Mar 2010 08:42:30 +0000 (+0900) Subject: fix: CSとBSを合計するとチューナー数以上の重複予約が出来てしまうバグを修正 X-Git-Url: http://git.osdn.net/view?p=epgrec%2Fepgrec.git;a=commitdiff_plain;h=f5eff4c43464a4a9881c6f97423dfb73c8327a1c fix: CSとBSを合計するとチューナー数以上の重複予約が出来てしまうバグを修正 --- diff --git a/Reservation.class.php b/Reservation.class.php index f01f31e..ddb24fe 100755 --- a/Reservation.class.php +++ b/Reservation.class.php @@ -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% 曜日(日-土)