Realtor

Активация объявлений по аренде

Recommended Posts

Мы деактивируем объявления по аренде объектов недвижимости, которые сданы в найм или в аренду и устанавливаем в поле таблицы дату окончания срока аренды (например в поле rent_end). 

Вопрос - как автоматически активировать объявления, у которых подошел срок окончания аренды например за 5 дней до окончания срока договора. Возможно ли применить в данном случае switcher.php , если возможно  подскажите  как реализовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
$query = "update ".DB_PREFIX."_data set active=1 where rent_end >= '$now_day_minus_5' and rent_end <= '$now_day'";

Примерно такой запрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а так будет логичней?

 

$query = "update ".DB_PREFIX."_data set active=1, rent_end=0 where rent_end >= '$now_day_minus_5' and rent_end <= '$now_day'";

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а так будет логичней?

 

$query = "update ".DB_PREFIX."_data set active=1, rent_end=0 where rent_end >= '$now_day_minus_5' and rent_end <= '$now_day'";

Ага, про обнуление rent_end забыл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем добрый день,

Забросил эту тему и оказывается это не работает

 

Условие при котором происходит  активация объявления за 5 дней до окончания срока даты аренды по полю rent_end и обновление даты data_added на текущую дату и установка активности поля active

$now_day=strtotime(date('Y-m-d 00:00:00', time()));
$now_day_plus_5=$now_day+6*24*3600;
$query = "update ".DB_PREFIX."_data set active=1, rent_end=0, date_added=date() where optype=1 and  ".$now_day."<=rent_end AND rent_end<=".$now_day_plus_5 ;

 

Кто подскажет почему не работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Realtor сказал:

Всем добрый день,

Забросил эту тему и оказывается это не работает

 

Условие при котором происходит  активация объявления за 5 дней до окончания срока даты аренды по полю rent_end и обновление даты data_added на текущую дату и установка активности поля active

$now_day=strtotime(date('Y-m-d 00:00:00', time()));
$now_day_plus_5=$now_day+6*24*3600;
$query = "update ".DB_PREFIX."_data set active=1, rent_end=0, date_added=date() where optype=1 and  ".$now_day."<=rent_end AND rent_end<=".$now_day_plus_5 ;

 

Кто подскажет почему не работает?

Попробуйте сделать 

echo $query; при запуске скрипта

А затем выполните его вручную через phpmyadmin и посмотрите что он выдаст.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 12.05.2017 в 09:14, rumantic сказал:

Попробуйте сделать 

echo $query; при запуске скрипта

А затем выполните его вручную через phpmyadmin и посмотрите что он выдаст.

Выдал

update re_data set active=1, rent_end=0, date_added=date() where optype=1 and 1494615600<=rent_end AND rent_end<=1495134000

2017-05-13 00:00:00
2017-05-19 00:00:00
1970-01-01 06:00:00complete

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Запрос

'UPDATE '.DB_PREFIX.'_data SET `active`=1 WHERE `active`=0 AND `optype`=1 AND `rent_end`<=\''.$rent_margin.'\' AND `rent_end`>=\''.$now.'\'';

Часть выделенная зеленым возможно не нужна. Если был сбой и какие-то объявления не активировались, но дата окончания ренты их выпала из промежутка между сегодня и сегодня+5дней, то они зависнут неактивными. В таком случае лучше активировать все, у чего конец ренты истекает в пределах ближайших 5ти дней, даже если эта дата истечения в прошлом.

2. Значение $rent_margin.

2a. Если поле rent_end имеет тип date, то 

$rent_magrin=strtotime(date('Y-m-d 23:59:59', (time()+5*86400)));

или если забить на условности, то

$rent_magrin=time()+5*86400;

2б. Если поле rent_end имеет тип dtdatetime, то 

$rent_magrin=date('Y-m-d 23:59:59', (time()+5*86400));

Т.е. крайним сроком для рассчета истечения ренты мы назначаем полночь дня, через 5-ть дней от сегодня (момента запуска крона). Иначе стартуя крон в час ночи, вы будете освобождать объявки у которых истекает срок аренды до часу ночи, фактически выкидывая день. Это не принципиально.

3. Значение $now (если используется) всегда

$now=date('Y-m-d H:i:s', time());

 

ПС. Дима в принципе верно написал, но переставил просто крайние границы местами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, abushyk сказал:

1. Запрос

'UPDATE '.DB_PREFIX.'_data SET `active`=1 WHERE `active`=0 AND `optype`=1 AND `rent_end`<=\''.$rent_margin.'\' AND `rent_end`>=\''.$now.'\'';

чения ренты мы назначаем полночь дня, через 5-ть дней от сегодня (момента запуска крона). Иначе стартуя крон в час ночи, вы будете освобождать объявки у которых истекает срок аренды до часу ночи, фактически выкидывая день. Это не принципиально.

 

Запустил, но почему то опять не получается. подскажите почему?
или может выложите полностью правильный rent_end.php, многим пользователям пригодится как  готовое решение

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас