Биллинг система - ГЛЮК

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

получили то за что не платили..

#1 24 сентября 2013 в 05:20
Сегодня столкнулся с проблемой… именно столкнулся — вероятно она была и до этого.
Суть: пользователь оплачивает VIP объявление на 7 дней… само объявление на 7 или 14 дней (другая цифра не разрешена). В итого получает объявление с вип статусом при любом раскладе на 2 недели… это как? как он считает, как это исправить… Код сам я править не могу и искать где глюк, так как он закрыт от глаз смертных.



Кто сталкивался?
#2 24 сентября 2013 в 06:49
Не совсем понятно в чем глюк?
Как

объявление с вип статусом при любом раскладе на 2 недели

Скела
если

VIP объявление на 7 дней… само объявление на 7 или 14 дней

Скела
На скрине вроде все логично. Срок 7 дней и вип тоже 7 дней. Откуда 2 недели получается, Вы сложили эти два срока?
#3 24 сентября 2013 в 06:56

Вы сложили эти два срока?

PrazdNik
Судя из скринов это не он сложил:
VIP-статус: до 8 октября
а это через 2 недели, хотя выбрано вроде на 1 неделю.
#4 24 сентября 2013 в 06:58
сегодня 24 сентября… 8 октября — это через две недели… а VIP был на 7 дней.
#5 29 сентября 2013 в 06:08

Поднимаю тему!

Написал письмо в тех.поддержку (как я понял с iMap она одна), заявленные 16 часов на ответ прошли 5 дней назад. look

Что делать — люди платят, а я руками всё правлю и каждый раз объясняю им, что уменьшаю — на столько сколько они заплатили.

Проблема: увеличивает в 2 раза любое добавленное количество VIP дней 5 дней VIP превращается в 10, а 10 в 20 и т.д.
Кто сталкивался с проблемой? или кто знает как напрямую связаться с разработчиками? пожалуйста отзовитесь — оооочень нужно исправить проблему!!!
#6 29 сентября 2013 в 06:26
Я, конечно, в глаза не видал компонент "Биллинг", но моя интуиция подсказывает, что необходимо в файле
/components/board/model.php найти функцию setVip и убрать/закомментировать второй SQL-запрос.
#7 29 сентября 2013 в 08:37
может там запросы нужно сменить местами и все будет нормально?
#8 29 сентября 2013 в 13:24

Я, конечно, в глаза не видал компонент "Биллинг", но моя интуиция подсказывает, что необходимо в файле /components/board/model.php найти функцию setVip и убрать/закомментировать второй SQL-запрос.

stealthdebuger

// Установить статус VIP и дату окончания считая от текущей,
// если до этого статуса VIP не было
$sql = "UPDATE cms_board_items
SET is_vip = 1, vipdate = DATE_ADD(NOW(), INTERVAL {$days} DAY)
WHERE id='{$id}' AND is_vip=0
LIMIT 1";

может там запросы нужно сменить местами и все будет нормально?

Роман
разные варианты "может" я уже просмотрел и не вижу с чего вдруг так.
#9 29 сентября 2013 в 14:37
  1.  
  2. public function setVip($id, $days){
  3.  
  4. // Установить статус VIP и дату окончания считая от текущей,
  5. // если до этого статуса VIP не было
  6. $sql = "UPDATE cms_board_items
  7. SET is_vip = 1, vipdate = DATE_ADD(NOW(), INTERVAL {$days} DAY)
  8. WHERE id='{$id}' AND is_vip=0
  9. LIMIT 1";
  10.  
  11. $this->inDB->query($sql);
  12.  
  13. // Продлить имеющуюся дату VIP, если VIP-статус уже был
  14. $sql = "UPDATE cms_board_items
  15. SET vipdate = DATE_ADD(vipdate, INTERVAL {$days} DAY)
  16. WHERE id='{$id}' AND is_vip=1
  17. LIMIT 1";
  18.  
  19. $this->inDB->query($sql);
  20.  
  21. return true;
  22.  
  23. }
  24.  
тут 2 запроса:
1-й ставит вип, а 2-й его продлевает. Тем самым увеличивая в 2-е вип.
Сам не проверял, но думаю все так и есть. Поменяйте местами запросы и проверьте.

  1.  
  2. public function setVip($id, $days){
  3.  
  4.  
  5. // Продлить имеющуюся дату VIP, если VIP-статус уже был
  6. $sql = "UPDATE cms_board_items
  7. SET vipdate = DATE_ADD(vipdate, INTERVAL {$days} DAY)
  8. WHERE id='{$id}' AND is_vip=1
  9. LIMIT 1";
  10.  
  11. $this->inDB->query($sql);
  12.  
  13. // Установить статус VIP и дату окончания считая от текущей,
  14. // если до этого статуса VIP не было
  15. $sql = "UPDATE cms_board_items
  16. SET is_vip = 1, vipdate = DATE_ADD(NOW(), INTERVAL {$days} DAY)
  17. WHERE id='{$id}' AND is_vip=0
  18. LIMIT 1";
  19.  
  20. $this->inDB->query($sql);
  21.  
  22.  
  23. return true;
  24.  
  25. }
  26.  
#10 29 сентября 2013 в 15:56
Роман, ну это у вас два… и у всех остальных два...
а вот у нашего уважаемого ТС — один запрос.
#11 2 февраля 2014 в 03:54
переведем тему в более свежое русло -> instantcms.ru/forum/thread17437-1.html#163014
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.