- Модуль: vote
- Путь к файлу: ~/bitrix/modules/vote/classes/general/vote.php
- Класс: CAllVote
- Вызов: CAllVote::WrongDateInterval
static function WrongDateInterval($CURRENT_VOTE_ID, $DATE_START, $DATE_END, $CHANNEL_ID)
{
global $DB;
$err_mess = (CAllVote::err_mess())."
Function: WrongDateInterval
Line: ";
$CURRENT_VOTE_ID = intval($CURRENT_VOTE_ID);
$CURRENT_VOTE_ID = ($CURRENT_VOTE_ID > 0 ? $CURRENT_VOTE_ID : false);
$CHANNEL_ID = intval($CHANNEL_ID);
$CHANNEL_ID = ($CHANNEL_ID > 0 ? $CHANNEL_ID : false);
$DATE_START = ($DATE_START == false ? false : (trim($DATE_START) == '' ? false : trim($DATE_START)));
$DATE_END = ($DATE_END == false ? false : (trim($DATE_END) == '' ? false : trim($DATE_END)));
if($CURRENT_VOTE_ID == false && $CHANNEL_ID == false)
{
return 0;
}
elseif($CHANNEL_ID > 0)
{
$db_res = CVoteChannel::GetByID($CHANNEL_ID);
if($db_res && $res = $db_res->Fetch())
if($res["VOTE_SINGLE"] != "Y")
return 0;
}
$st = ($DATE_START == false ? "VV.DATE_START" : $DB->CharToDateFunction($DATE_START, "FULL"));
$en = ($DATE_END == false ? "VV.DATE_END" : $DB->CharToDateFunction($DATE_END, "FULL"));
if($CURRENT_VOTE_ID <= 0)
{
if($DATE_START == false)
$st = $DB->CurrentTimeFunction();
if($DATE_END == false)
$en = $DB->CharToDateFunction(ConvertTimeStamp(1924984799, "FULL"), "FULL"); // '31.12.2030 23:59:59'
}
$strSql = "
SELECT V.ID
FROM b_vote V
".($CURRENT_VOTE_ID > 0 ?
"LEFT JOIN b_vote VV ON (VV.ID = ".$CURRENT_VOTE_ID.") " : "")."
INNER JOIN b_vote_channel VC ON (V.CHANNEL_ID = VC.ID AND VC.VOTE_SINGLE = 'Y')
WHERE
V.CHANNEL_ID=".($CHANNEL_ID == false ? "VV.CHANNEL_ID" : $CHANNEL_ID)." AND
V.ACTIVE='Y' AND
".($CURRENT_VOTE_ID > 0 ?
"V.ID<>'".$CURRENT_VOTE_ID."' AND " : "")."
(
(".$st." between V.DATE_START and V.DATE_END) OR
(".$en." between V.DATE_START and V.DATE_END) OR
(V.DATE_START between ".$st." and ".$en.") OR
(V.DATE_END between ".$st." and ".$en.")
)";
$db_res = $DB->Query($strSql, false, $err_mess.__LINE__);
if($db_res && $res = $db_res->Fetch())
return intval($res["ID"]);
return 0;
}